Javascript滑动效果利器--Swiper

本文介绍Swiper插件的基本用法及如何实现广告轮播、粘附式滚动和画廊效果。Swiper是一款纯JavaScript打造的滑动特效插件,适用于移动端网站开发。

swiper使用指南

使用场景

首先我们就要知道swiper这个东西能帮我们解决什么以至于我们要去学习使用它,这是我们学习的动力。大致介绍一下场景:

1.头部的广告自动轮播效果;
2.移动端网页粘附式滚动效果;
3.简单的画廊。

这些都可以通过swiper轻松实现,所以本篇文章的目的就是在学习swiper的基础上实现这几个效果!

基本用法

Swiper是纯javascript打造的滑动特效插件,面向手机、平板电脑等移动终端。
Swiper能实现触屏焦点图、触屏Tab切换、触屏多图切换等常用效果。
Swiper开源、免费、稳定、使用简单、功能强大,是架构移动终端网站的重要选择!
以上是swiper中文网首页的介绍,就是这么牛逼轰轰。
第一步:要使用swiper就需要加载swiper的js和css文件:swiper.min.js和swiper.min.css文件。

<!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>

第二步:按照下面的结构使用swiper.min.css中的样式装饰你的div:

<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之外 -->

第三步:初始化Swiper:写在html内容后面或者是等页面加载完后初始化:

//第一种方式
<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>
</body>

//第二种方式
<script type="text/javascript">
window.onload = function() {
  ...
}
</script>

应用1:广告自动轮播

我们遵照上面的方法可以快速地实现一个广告轮播地效果:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>SwiperDemo</title>
    <link rel="stylesheet" href="./swiper-3.4.2.min.css">
    <style type="text/css">
        html,body{
            height: 100%;
            width: 100%;
            overflow: hidden;
            margin: 0;
            padding: 0;
        }
        #ad_container{
            height: 100px;
            width: 100%;
            background: #666;
        }
        #ad1{
            background:#4390ee;
        }
        #ad2{
            background:#ca4040;
        }
        #ad3{
            background:#ff8604;
        }
        .swiper-slide{
            height: 100px;
            line-height: 100px;
            text-align: center;
            color: #fff;
            font-size: 20px;
        }
    </style>
</head>

<body>
    <div id="demo">
        <div id="ad_container" class="swiper-container">
            <div class="swiper-wrapper">
                <div id="ad1" class="swiper-slide">Slide 1</div>
                <div id="ad2" class="swiper-slide">Slide 2</div>
                <div id="ad3" class="swiper-slide">Slide 3</div>
            </div>
        </div>
    </div>
    <script src="./swiper-3.4.2.min.js"></script>
    <script>        
  var mySwiper = new Swiper ('.swiper-container', {
    direction: 'horizontal',
    autoplay: 1000
  })        
</script>
</body>

</html>

想要设置广告自动切换,swiper切换等样式,就要通过在Swiper对象实例的参数上来做文章:

initialSlide:0
direction:horizontal
speed:300
autoplay:0
autoplayDisableOnInteraction:true
autoplayStopOnLast:false
grabCursor:false
parallax:false
hashnav:false
hashnavWatchState:false
history: replaceState:false
setWrapperSize:false
virtualTranslate:false
a11y:false
width:
height:
roundLengths:false
breakpoints:
autoHeight:false
nested:false

这里写图片描述
这些属性不做细讲,自己去试。在每个swiper-slide中插入你想要的广告图片或者是设置div的背景都可以实现广告效果。

应用2:粘附式滚动效果

干脆在原来的基础上做吧,请把网页调整移动式,效果好一些。这样的话我们就把轮播广告作为我们这个网页第一页的子页面,这就要用到上面nested的属性了。

<body>
    <div id="demo">
        <div id="page_container" class="swiper-container">
            <div class="swiper-wrapper">
                <div id="page1" class="swiper-slide">
                    <div id="ad_container" class="swiper-container">
                        <div class="swiper-wrapper">
                            <div id="ad1" class="swiper-slide">Slide 1</div>
                            <div id="ad2" class="swiper-slide">Slide 2</div>
                            <div id="ad3" class="swiper-slide">Slide 3</div>
                        </div>
                    </div>
                </div>
                <div id="page2" class="swiper-slide"></div>
                <div id="page3" class="swiper-slide"></div>
            </div>

        </div>
    </div>
    <script src="./swiper-3.4.2.min.js"></script>
    <script>        
  var mySwiper = new Swiper ('#ad_container', {
    direction: 'horizontal',
    autoplay: 1000,
    nested:true
  });
  var mySwiper2 = new Swiper ('#page_container', {
    direction: 'vertical'

  });          
</script>
</body>

这里写图片描述
样式就不写了,主要还是看一下这个html结构,这就是嵌套最简单直观的结构了。

应用3:画廊

其实画廊也没啥做的必要了,就是在给应用2加一个子页面,添加一下画廊的控件来控制一下照片的切换

<body>
    <div id="demo">
        <div id="page_container" class="swiper-container">
            <div class="swiper-wrapper">
                <div id="page1" class="swiper-slide">
                    <div id="ad_container" class="swiper-container">
                        <div class="swiper-wrapper">
                            <div id="ad1" class="swiper-slide">Slide 1</div>
                            <div id="ad2" class="swiper-slide">Slide 2</div>
                            <div id="ad3" class="swiper-slide">Slide 3</div>
                        </div>
                    </div>
                </div>
                <div id="page2" class="swiper-slide"></div>
                <div id="page3" class="swiper-slide">
                    <div id="photo_container" class="swiper-container">
                        <div class="swiper-wrapper">
                            <div id="photo1" class="swiper-slide">Photo 1</div>
                            <div id="photo2" class="swiper-slide">Photo 2</div>
                            <div id="photo3" class="swiper-slide">Photo 3</div>
                        </div>
                    </div>
                    <div class="swiper-pagination"></div>
                </div>
            </div>

        </div>
    </div>
    <script src="./swiper-3.4.2.min.js"></script>
    <script>        
  var mySwiper = new Swiper ('#ad_container', {
    direction: 'horizontal',
    autoplay: 1000,
    nested:true
  });
  var mySwiper2 = new Swiper ('#page_container', {
    direction: 'vertical'

  });
  var mySwiper3 = new Swiper ('#photo_container', {
    direction: 'horizontal',
    nested:true,
    pagination: '.swiper-pagination',
    paginationClickable: true
  });            
</script>
</body>

这里写图片描述
想实现更多的效果,自己去查Swiper中文网的API,参见Swiper中文网,我写了一下就发现这个插件还是很容易上手的,但是当你真正在工作中遇到的话,会发现里面有很多的坑,所以在学校装装逼,平时玩玩可以拿过来用,没吃透这个插件的兼容性即一系列的坑,紧急的项目还是别用了,别问我怎么知道的。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值