图片轮播——Swiper实例

一、Swiper简介

     Swiper 是一款免费以及轻量级的移动设备触控滑块的js框架,使用硬件加速过渡(如果该设备支持的话)。主要使用于移动端的网站、移动web apps,native apps和hybrid apps。主要是为IOS而设计的,同时,在Android、WP8系统也有着良好的用户体验,Swiper从3.0开始不再全面支持PC端。因此,如需在PC上兼容更多的浏览器,可以选择Swiper2.x(甚至支持IE7)。

Swiper 完全免费并开源(MIT Licensed),无论你使用在个人网站或商业网站,都无需付费。

官网:https://www.swiper.com.cn/

二、实例

1、效果图

1.1、缩放型

1.2、3D界面

1.3、Y轴位移

1.4、旋转

1.5、立方体效果

1.6、3d翻转

2、代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Swiper Demo</title>
    <!--<link rel="stylesheet" href="css/swiper.min.css">-->
    <link rel="stylesheet" href="https://unpkg.com/swiper/css/swiper.min.css">
    <style>
        .myswiper {
            width: 1200px;
            margin: auto;
            text-align: center;
        }
    img{
	   width:200px;
           height:260px;
	}
    </style>
</head>
<body>
<div class="myswiper">
    <!--缩放型-->
    <div class="swiper-container demo1">
        <div class="swiper-wrapper">
            <div class="swiper-slide">
                <img src="img/imgdemo.png">
            </div>
            <div class="swiper-slide">
                <img src="img/imgdemo.png">
            </div>
            <div class="swiper-slide">
                <img src="img/imgdemo.png">
            </div>
        </div>
        <div class="swiper-button-prev"></div>
        <div class="swiper-button-next"></div>
        <div class="swiper-pagination"></div>
    </div>

    <!--3D界面-->
    <div class="swiper-container demo2">
        <div class="swiper-wrapper">
            <div class="swiper-slide">
                <img src="img/imgdemo.png">
            </div>
            <div class="swiper-slide">
                <img src="img/imgdemo.png">
            </div>
            <div class="swiper-slide">
                <img src="img/imgdemo.png">
            </div>
        </div>
        <div class="swiper-button-prev"></div>
        <div class="swiper-button-next"></div>
        <div class="swiper-pagination"></div>
    </div>

    <!--Y轴位移-->
    <div class="swiper-container demo3">
        <div class="swiper-wrapper">
            <div class="swiper-slide">
                <img src="img/imgdemo.png">
            </div>
            <div class="swiper-slide">
                <img src="img/imgdemo.png">
            </div>
            <div class="swiper-slide">
                <img src="img/imgdemo.png">
            </div>
        </div>
        <div class="swiper-button-prev"></div>
        <div class="swiper-button-next"></div>
        <div class="swiper-pagination"></div>
    </div>

    <!--旋转-->
    <div class="swiper-container demo4">
        <div class="swiper-wrapper">
            <div class="swiper-slide">
                <img src="img/imgdemo.png">
            </div>
            <div class="swiper-slide">
                <img src="img/imgdemo.png">
            </div>
            <div class="swiper-slide">
                <img src="img/imgdemo.png">
            </div>
        </div>
        <div class="swiper-button-prev"></div>
        <div class="swiper-button-next"></div>
        <div class="swiper-pagination"></div>
    </div>

    <!--立方体效果-->
    <div class="swiper-container demo5">
        <div class="swiper-wrapper">
            <div class="swiper-slide">
                <img src="img/imgdemo.png">
            </div>
            <div class="swiper-slide">
                <img src="img/imgdemo.png">
            </div>
            <div class="swiper-slide">
                <img src="img/imgdemo.png">
            </div>
        </div>
    </div>

    <!--3d翻转-->
    <div class="swiper-container demo6">
        <div class="swiper-wrapper">
            <div class="swiper-slide">
                <img src="img/imgdemo.png">
            </div>
            <div class="swiper-slide">
                <img src="img/imgdemo.png">
            </div>
            <div class="swiper-slide">
                <img src="img/imgdemo.png">
            </div>
        </div>
    </div>

</div>
</body>
<!--<script src="js/swiper.min.js"></script>-->
<script src="https://unpkg.com/swiper/js/swiper.min.js"> </script>
<script>
    // 缩放型
    var swiper = new Swiper('.demo1', {
        loop: true,
        speed: 2500,
        slidesPerView: 5,
        spaceBetween: 30,
        centeredSlides: true,
        watchSlidesProgress: true,
        on: {
            setTranslate: function () {
                slides = this.slides;
                for (i = 0; i < slides.length; i++) {
                    slide = slides.eq(i);
                    progress = slides[i].progress;
                    slide.css({'opacity': '', 'background': ''});
                    slide.transform('');//清除样式
                    slide.transform('scale(' + (1 - Math.abs(progress) / 8) + ')');
                }
            },
            setTransition: function (transition) {
                for (var i = 0; i < this.slides.length; i++) {
                    var slide = this.slides.eq(i)
                    slide.transition(transition);
                }
            }
        },
        // 显示左右滚动条
        navigation: {
            nextEl: '.swiper-button-next',
            prevEl: '.swiper-button-prev',
        },
        // 显示分页器
        pagination: {
            el: '.swiper-pagination',
            clickable: true,
        }
    });

    // 3D界面
    var swiper = new Swiper('.demo2', {
        loop: true,
        mousewheel: true, // 鼠标滚动
        effect: 'coverflow',
        slidesPerView: 3,
        centeredSlides: true,
        coverflowEffect: {
            rotate: 30,
            stretch: 10,
            depth: 60,
            modifier: 2,
            slideShadows: true
        },
        navigation: {
            nextEl: '.swiper-button-next',
            prevEl: '.swiper-button-prev',
        },
        // 显示分页器
        pagination: {
            el: '.swiper-pagination',
            clickable: true,
        }
    });

    // Y轴位移
    var swiper = new Swiper('.demo3', {
        loop: true,
        speed: 2500,
        slidesPerView: 5,
        spaceBetween: 30,
        centeredSlides: true,
        watchSlidesProgress: true,
        on: {
            setTranslate: function () {
                slides = this.slides;
                for (i = 0; i < slides.length; i++) {
                    slide = slides.eq(i);
                    progress = slides[i].progress;
                    slide.css({'opacity': '', 'background': ''});
                    slide.transform('');
                    slide.css('opacity',(1-Math.abs(progress)/6));
                    slide.transform('translate3d(0,'+ Math.abs(progress)*20+'px, 0)');
                }
            },
            setTransition: function (transition) {
                for (var i = 0; i < this.slides.length; i++) {
                    var slide = this.slides.eq(i)
                    slide.transition(transition);
                }
            }
        },
        // 显示左右滚动条
        navigation: {
            nextEl: '.swiper-button-next',
            prevEl: '.swiper-button-prev',
        },
        // 显示分页器
        pagination: {
            el: '.swiper-pagination',
            clickable: true,
        }
    });

    // 旋转
    var swiper = new Swiper('.demo4', {
        loop: true,
        speed: 2500,
        slidesPerView: 5,
        spaceBetween: 30,
        centeredSlides: true,
        watchSlidesProgress: true,
        on: {
            setTranslate: function () {
                slides = this.slides;
                for (i = 0; i < slides.length; i++) {
                    slide = slides.eq(i);
                    progress = slides[i].progress;
                    slide.css({'opacity': '', 'background': ''});
                    slide.transform('');
                    slide.transform('rotate('+ progress*30+'deg)');
                }
            },
            setTransition: function (transition) {
                for (var i = 0; i < this.slides.length; i++) {
                    var slide = this.slides.eq(i)
                    slide.transition(transition);
                }
            }
        },
        // 显示左右滚动条
        navigation: {
            nextEl: '.swiper-button-next',
            prevEl: '.swiper-button-prev',
        },
        // 显示分页器
        pagination: {
            el: '.swiper-pagination',
            clickable: true,
        }
    });

    // 立方体效果
    var swiper = new Swiper('.demo5', {
        loop: true,
        mousewheel: true, // 鼠标滚动
        effect : 'cube',
        cubeEffect: {
            slideShadows: true,
            shadow: true,
            shadowOffset: 100,
            shadowScale: 0.6
        }
    });

    // 3d翻转
    var swiper = new Swiper('.demo6', {
        loop: true,
        mousewheel: true, // 鼠标滚动
        effect : 'flip',
        flipEffect: {
            slideShadows : true,
            limitRotation : true,
        }
    });
</script>
</html>

官网API地址:https://www.swiper.com.cn/api/index.html

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Swiper 是一款非常流行的 JavaScript 平台,用于创建响应式触摸滑动幻灯片和轮播组件。嵌套 Swiper 是指在一个 Swiper 实例中包含另一个 Swiper 实例的情况,通常是为了实现不同级别的导航或子级内容的切换。 然而,如果内部的 Swiper 没有正确配置或者没有触发它的滑动事件(例如 `.next()` 或者 `.slideTo()`),那么它可能不会自动轮播。这可能是由于以下几个原因: 1. **缺少初始化**:内部 Swiper 需要在外部 Swiper 初始化后被单独初始化,否则可能会忽略父 Swiper 对其控制的影响。 2. **禁止自动播放**:内部 Swiper 可能设置了 `autoplayDisableOnInteraction: true`,阻止了在用户交互时的自动播放功能。 3. **父 Swiper 控制**:如果没有正确设置,外部 Swiper 可能没有将内部 Swiper 包含在其滑动控制范围内。 4. **事件监听问题**:外部 Swiper 的事件(如 slideChange)可能没有绑定到内部 Swiper 上,导致内部滑动不生效。 解决方法包括检查并确保以下步骤: - **正确初始化**:为内部 Swiper 添加正确的初始化代码。 - **解除交互限制**:如果需要,修改内部 Swiper 的 autoplay 设置。 - **关联事件**:在外部 Swiper 上绑定事件,使其能够控制内部 Swiper。 - **查看文档**:确认嵌套 Swiper 的使用示例或查阅 Swiper 文档中的相关章节,确保正确配置。 如果你遇到具体的问题,提供更多的代码片段将有助于更准确地诊断问题。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值