NNNの博客

Swiper用法小总结🌸

最近在研究swiper。在使用的过程中对swiper有个更具体的了解。下面就让我们来看看swiper吧~


关于swiper

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

使用

1.大家可以在 http://www.swiper.com.cn 官方文档中查看swiper的用法和下载swiper文件。
2.Swiper使用
2.1 加载swiper插件
<!DOCTYPE html>
<html>
<head>
    ...
    <link rel="stylesheet" href="path/to/swiper.min.css">
</head>
<body>
    ...
    <script src="path/to/swiper.min.js"></script>
</body>
</html>
2.2 html内容
<div class="swiper-container">
    <div class="swiper-wrapper">
        <div class="swiper-slide">Slide 1</div>
        <div class="swiper-slide">Slide 2</div>
        <div class="swiper-slide">Slide 3</div>
    </div>
    <!-- 如果需要分页器 -->
    <div class="swiper-pagination"></div>

    <!-- 如果需要导航按钮 -->
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>

    <!-- 如果需要滚动条 -->
    <div class="swiper-scrollbar"></div>
</div>
导航等组件可以放在container之外
2.3 swiper初始化
<script>        
  var mySwiper = new Swiper ('.swiper-container', {
    direction: 'vertical',
    loop: true,

    // 如果需要分页器
    pagination: '.swiper-pagination',

    // 如果需要前进后退按钮
    nextButton: '.swiper-button-next',
    prevButton: '.swiper-button-prev',

    // 如果需要滚动条
    scrollbar: '.swiper-scrollbar',
  })        
  </script>
3.Swiper Animate使用方法
3.1 使用Swiper Animate需要加载swiper.animate.min.js和animate.min.css,初始化代码如下
<!DOCTYPE html>
<html>
<head>
    ...
    <link rel="stylesheet" href="path/to/swiper.min.css">
    <link rel="stylesheet" href="path/to/animate.min.css">
</head>
<body>
    ...
    <script src="path/to/swiper.min.js"></script>
    <script src="path/to/swiper.animate.min.js"></script>
</body>
</html>
3.2 初始化时隐藏元素并在需要开始的时刻开始动画
<script>        
  var mySwiper = new Swiper ('.swiper-container', {
  onInit: function(swiper){ //Swiper2.x的初始化是onFirstInit
    swiperAnimateCache(swiper); //隐藏动画元素 
    swiperAnimate(swiper); //初始化完成开始动画
  }, 
  onSlideChangeEnd: function(swiper){ 
    swiperAnimate(swiper); //每个slide切换结束时也运行当前slide动画
  } 
  })        
 </script>
3.3 在需要运动的元素上面增加类名ani,Swiper Animate需要指定几个参数:

swiper-animate-effect:切换效果,例如 fadeInUp

swiper-animate-duration:可选,动画持续时间(单位秒),例如 0.5s

swiper-animate-delay:可选,动画延迟时间(单位秒),例如 0.3s

<div class="swiper-slide">
    <p class="ani" swiper-animate-effect="fadeInUp" swiper-animate-duration="0.5s" swiper-animate-delay="0.3s">内容</p>
</div> 
3.4 动画效果可参考Animate.css,如果里面的效果都不是我们想要的,我们可以仿照Animate.css的格式仿写其他效果,我在做这个项目的时候就是自己写了些动画进去


下面就项目中遇到的小技巧,自己稍微总结一下~


1.swiper中,如果设置为loop时,控制前后的按钮中index值就不好用,因为循环找不到开始和结束,如果设置为loop,前后按钮就没有颜色的变化。

2.使用swiper插件的时候,如果想要对一个元素进行多个动画,则可以加多个父级div等,对div进行动画的添加,从而达到想要实现的动画效果。

3.嵌套swiper的时候如果到添加的swiper出现,原来的swiper不能滑动,则在添加swiper上加swiper-no-swiping,noSwiping:false, 原来的swiper,的,js里面添加noSwiping:true,属性。

4.swiper1._slideTo(index);swiper滑动到第index页的函数。