swiper踩过的哪些坑
最近,苦恼于各种轮播的需求,每个自己都要自己写,写的挺烦的。终于,在网上发现了swiper插件,发现还是挺实用的,但其中还是踩过了不少的坑,其中有不少都是很简单的问题,但到发现的时候都是花了不少时间,特此做个分享。
Banner轮播图1
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <title>Swiper demo</title>
- <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
- <!-- Link Swiper's CSS -->
- <link rel="stylesheet" href="./css/swiper.min.css">
- <!-- Demo styles -->
- <style>
- html, body {
- position: relative;
- height: 100%;
- }
- body {
- background: #eee;
- font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
- font-size: 14px;
- color:#000;
- margin: 0;
- padding: 0;
- }
- .swiper-container {
- width: 100%;
- height: 100%;
- margin-left: auto;
- margin-right: auto;
- }
- .swiper-slide {
- text-align: center;
- font-size: 18px;
- background: #fff;
- /* Center slide text vertically */
- display: -webkit-box;
- display: -ms-flexbox;
- display: -webkit-flex;
- display: flex;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- -webkit-justify-content: center;
- justify-content: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- -webkit-align-items: center;
- align-items: center;
- }
- </style>
- </head>
- <body>
- <!-- Swiper -->
- <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 class="swiper-slide">Slide 4</div>
- <div class="swiper-slide">Slide 5</div>
- <div class="swiper-slide">Slide 6</div>
- <div class="swiper-slide">Slide 7</div>
- <div class="swiper-slide">Slide 8</div>
- <div class="swiper-slide">Slide 9</div>
- <div class="swiper-slide">Slide 10</div>
- </div>
- <!-- Add Pagination -->
- <div class="swiper-pagination"></div>
- <!-- Add Arrows -->
- <div class="swiper-button-next"></div>
- <div class="swiper-button-prev"></div>
- </div>
- <!-- Swiper JS -->
- <script src="./js/swiper.js"></script>
- <!-- Initialize Swiper -->
- <script>
- var swiper = new Swiper('.swiper-container', {
- slidesPerView: 1,
- spaceBetween: 30,
- loop: true,
- pagination: {
- el: '.swiper-pagination',
- clickable: true,
- },
- // 开启自动切换
- autoplay: true,
- navigation: {
- nextEl: '.swiper-button-next',
- prevEl: '.swiper-button-prev',
- },
- });
- </script>
- </body>
- </html>
但是,这个autoplay属性有问题,在轮播中触摸滑动之后就不在轮播,这不是我想要的。于是,我看了api文档,发现disableOnInteraction为true,用户操作swiper之后,禁止autoplay
- autoplay:true 等价于
- autoplay:{
- delay: 3000,
- stopOnLastSlide: false,
- disableOnInteraction: true,
- }
一行多个slide轮播,tap切换 2
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <title>Swiper demo</title>
- <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
- <!-- Link Swiper's CSS -->
- <link rel="stylesheet" href="./css/swiper.min.css">
- <!-- Demo styles -->
- <style>
- html,
- body {
- position: relative;
- height: 100%;
- }
- body {
- background: #eee;
- font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
- font-size: 14px;
- color: #000;
- margin: 0;
- padding: 0;
- }
- .container {
- width: 500px;
- margin: 0 auto;
- }
- .swiper-container {
- width: 500px;
- height: 500px;
- margin-left: auto;
- margin-right: auto;
- }
- .swiper-slide {
- text-align: center;
- font-size: 18px;
- background: #fff;
- /* Center slide text vertically */
- display: -webkit-box;
- display: -ms-flexbox;
- display: -webkit-flex;
- display: flex;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- -webkit-justify-content: center;
- justify-content: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- -webkit-align-items: center;
- align-items: center;
- }
- .tap {
- display: flex;
- justify-content: space-evenly;
- }
- .tap span {
- display: inline-block;
- width: 50px;
- height: 50px;
- border: 1px solid #000;
- text-align: center;
- line-height: 50px;
- background-color: white;
- }
- .hide {
- position: absolute;
- visibility: hidden;
- height: 0;
- }
- .show {
- color: #e5256e;
- background-color: #fff;
- }
- </style>
- </head>
- <body>
- <div class="container">
- <!-- Swiper -->
- <div class="tap">
- <span class="show">1</span>
- <span>2</span>
- <span>3</span>
- </div>
- <div id="lunbo">
- <div class="img1">
- <div class="swiper-container img1-1">
- <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 class="swiper-slide">Slide 4</div>
- <div class="swiper-slide">Slide 5</div>
- <div class="swiper-slide">Slide 6</div>
- <div class="swiper-slide">Slide 7</div>
- <div class="swiper-slide">Slide 8</div>
- <div class="swiper-slide">Slide 9</div>
- <div class="swiper-slide">Slide 10</div>
- </div>
- </div>
- </div>
- <div class="img2 hide">
- <div class="swiper-container img2-1">
- <div class="swiper-wrapper">
- <div class="swiper-slide">Slide 21</div>
- <div class="swiper-slide">Slide 22</div>
- <div class="swiper-slide">Slide 23</div>
- <div class="swiper-slide">Slide 24</div>
- <div class="swiper-slide">Slide 25</div>
- <div class="swiper-slide">Slide 26</div>
- <div class="swiper-slide">Slide 27</div>
- <div class="swiper-slide">Slide 28</div>
- <div class="swiper-slide">Slide 29</div>
- <div class="swiper-slide">Slide 210</div>
- </div>
- </div>
- </div>
- <div class="img3 hide">
- <div class="swiper-container img3-1">
- <div class="swiper-wrapper">
- <div class="swiper-slide">Slide 31</div>
- <div class="swiper-slide">Slide 32</div>
- <div class="swiper-slide">Slide 33</div>
- <div class="swiper-slide">Slide 34</div>
- <div class="swiper-slide">Slide 35</div>
- <div class="swiper-slide">Slide 36</div>
- <div class="swiper-slide">Slide 37</div>
- <div class="swiper-slide">Slide 38</div>
- <div class="swiper-slide">Slide 39</div>
- <div class="swiper-slide">Slide 310</div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <!-- Swiper JS -->
- <script src="./js/jquery.min.js"></script>
- <script src="./js/swiper.js"></script>
- <!-- Initialize Swiper -->
- <script>
- var swiper1 = new Swiper('.img1-1', {
- slidesPerView: 3,
- spaceBetween: 30,
- loop: true,
- // 开启自动切换
- autoplay: {
- delay: 3000,
- stopOnLastSlide: false,
- disableOnInteraction: false,
- },
- });
- var swiper2 = new Swiper('.img2-1', {
- slidesPerView: 3,
- spaceBetween: 30,
- loop: true,
- // 开启自动切换
- autoplay: {
- delay: 3000,
- stopOnLastSlide: false,
- disableOnInteraction: false,
- },
- });
- var swiper3 = new Swiper('.img3-1', {
- slidesPerView: 3,
- spaceBetween: 30,
- loop: true,
- // 开启自动切换
- autoplay: {
- delay: 3000,
- stopOnLastSlide: false,
- disableOnInteraction: false,
- },
- });
- $(".tap span").click(function () {
- var index = $(this).index();
- $("#lunbo").children("div").eq(index).removeClass("hide").siblings().addClass("hide");
- $(this).addClass("show").siblings().removeClass("show");
- })
- </script>
- </body>
- </html>
注意,切换多个轮播的时候,不要使用display:none,建议使用visibility: hidden。一开始使用了display:none,出现各种问题,样式变了,轮播失效,加了监视器也只是样式好了,轮播依旧失效。
匀速无缝轮播3
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <title>Swiper demo</title>
- <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
- <!-- Link Swiper's CSS -->
- <link rel="stylesheet" href="./css/swiper.min.css">
- <!-- Demo styles -->
- <style>
- html, body {
- position: relative;
- height: 100%;
- }
- body {
- background: #eee;
- font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
- font-size: 14px;
- color:#000;
- margin: 0;
- padding: 0;
- }
- .swiper-container {
- width: 100%;
- height: 100%;
- margin-left: auto;
- margin-right: auto;
- }
- .swiper-slide {
- text-align: center;
- font-size: 18px;
- background: #fff;
- /* Center slide text vertically */
- display: -webkit-box;
- display: -ms-flexbox;
- display: -webkit-flex;
- display: flex;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- -webkit-justify-content: center;
- justify-content: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- -webkit-align-items: center;
- align-items: center;
- }
- .swiper-container-free-mode>.swiper-wrapper {
- -webkit-transition-timing-function: linear;
- -moz-transition-timing-function: linear;
- -ms-transition-timing-function: linear;
- -o-transition-timing-function: linear;
- transition-timing-function: linear;
- margin: 0 auto;
- }
- </style>
- </head>
- <body>
- <!-- Swiper -->
- <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 class="swiper-slide">Slide 4</div>
- <div class="swiper-slide">Slide 5</div>
- <div class="swiper-slide">Slide 6</div>
- <div class="swiper-slide">Slide 7</div>
- <div class="swiper-slide">Slide 8</div>
- <div class="swiper-slide">Slide 9</div>
- <div class="swiper-slide">Slide 10</div>
- </div>
- <!-- Add Pagination -->
- <div class="swiper-pagination"></div>
- <!-- Add Arrows -->
- <div class="swiper-button-next"></div>
- <div class="swiper-button-prev"></div>
- </div>
- <!-- Swiper JS -->
- <script src="./js/swiper.js"></script>
- <!-- Initialize Swiper -->
- <script>
- var swiper = new Swiper('.swiper-container', {
- slidesPerView: 3,
- spaceBetween: 30,
- loop: true,
- pagination: {
- el: '.swiper-pagination',
- clickable: true,
- },
- speed:2000,
- freeMode: true,
- // 开启自动切换
- autoplay:{
- delay: 0,
- stopOnLastSlide: false,
- disableOnInteraction: false,
- },
- });
- </script>
- </body>
- </html>
匀速轮播
只要delay设为0,freeMode为true,覆盖样式.swiper-container-free-mode>.swiper-wrapper即可
swiper踩过的哪些坑的更多相关文章
- 三分之一的程序猿之社交类app踩过的那些坑
三分之一的程序猿之社交类app踩过的那些坑 万众创新,全民创业.哪怕去年陌生人社交不管融资与否都倒闭了不知道多少家,但是依然有很多陌生人社交应用层出不穷的冒出来.各种脑洞大开,让人拍案叫起. 下面我们 ...
- 【Fine原创】JMeter分布式测试中踩过的那些坑
最近因为项目需要,研究了性能测试的相关内容,并且最终选用了jmeter这一轻量级开源工具.因为一直使用jmeter的GUI模式进行脚本设计,到测试执行阶段工具本身对资源的过量消耗给性能测试带来了瓶颈, ...
- 与webview打交道中踩过的那些坑
随着HTML5被越来越多的用到web APP的开发当中,webview这一个神器便日渐凸显出重要地位.简要的说,webview能够在移动应用中开辟出一个窗口,在里面显示html页面,css以及js代码 ...
- 美团在Redis上踩过的一些坑-目录(本人非美团)(转)
来自:http://carlosfu.iteye.com/blog/2254154 分为5个部分: 一.周期性出现connect timeout 二.redis bgrewriteaof问 ...
- 安装python爬虫scrapy踩过的那些坑和编程外的思考
这些天应朋友的要求抓取某个论坛帖子的信息,网上搜索了一下开源的爬虫资料,看了许多对于开源爬虫的比较发现开源爬虫scrapy比较好用.但是以前一直用的java和php,对python不熟悉,于是花一天时 ...
- [原创]阿里云RocketMQ踩过的哪些坑
由于公司的最近开始使用RocketMQ来做支付业务处理, 便开启了学习阿里云RocketMQ的学习与实践之路, 其中踩了不少的坑, 大部份是由于没有仔细查看阿里云的技术文档而踩的坑. 但是有一个非常大 ...
- Spring Cloud 升级最新 Finchley 版本,踩了所有的坑!
Spring Boot 2.x 已经发布了很久,现在 Spring Cloud 也发布了 基于 Spring Boot 2.x 的 Finchley 版本,现在一起为项目做一次整体框架升级. 升级前 ...
- Redis上踩过的一些坑
来自: http://blog.csdn.net//chenleixing/article/details/50530419 上上周和同事(龙哥)参加了360组织的互联网技术训练营第三期,美团网的DB ...
- Android Camera开发经验总结以及踩过的那些坑
写在开头 需求方:上传试卷的时候,用户自己拍的照片有很多问题.如:不清晰.图片歪了.错误图片等.我们要是能够对拍摄照片进行识别处理就好了,能够裁切矫正就更好了,最好可以像二维码扫描一样,直接识别处理- ...
随机推荐
- 【DM642学习笔记十】DSP优化记录
1. 处理的数据先EDMA到片内,具有更高的效率! 以YUV2RGB为例: #pragma DATA_SECTION(onchipBuf0_y,".INTPROCBUFF"); # ...
- Java Iterator模式
Iterator迭代器的定义:迭代器(Iterator)模式,又叫做游标(Cursor)模式.GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部 ...
- Luogu P2764 最小路径覆盖问题(二分图匹配)
P2764 最小路径覆盖问题 题面 题目描述 «问题描述: 给定有向图 \(G=(V,E)\) .设 \(P\) 是 \(G\) 的一个简单路(顶点不相交)的集合.如果 \(V\) 中每个顶点恰好在 ...
- 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践
1. 概述 数据服务(https://ds-cn-shanghai.data.aliyun.com) 是DataWorks产品家族的一员,提供了快速将数据表生成API的能力,通过可视化的向导,一分钟“ ...
- [jnhs]使用netbeans生成的webapp发布到tomcat是需要改名字的,不然就是404Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
2018-12-21更新 退出tomcat然后删除解压之后的文件夹,然后再启动tomcat也可以解决(安装版tomcat) 2018-12-9更新 有时候这样也可以解决 第一次使用tomcat发布we ...
- 为什么要使用ul li布局网站导航条?使用ul li布局网站网页导航必要性
会布局的都知道网站导航条布局非常重要,可能一个导航条最终布局效果有时可以使用ul li列表标签布局,有时可以不用ul li布局,而是直接一个div盒子里直接放锚文本超链接的栏目名称,也能实现,看下图. ...
- Chrome谷歌浏览器调试
Chrome浏览器调试技巧 https://blog.csdn.net/u014727260/article/details/53231298
- python实例 字典
#! /usr/bin/python x={'a':'aaa','b':'bbb','c':12} print (x['a']) print (x['b']) print (x['c']) for k ...
- python 线性代数模块linalg
- C++中的 istringstream 的用法
C++引入了ostringstream.istringstream.stringstream这三个类,要使用他们创建对象就必须包含<sstream>这个头文件. istringstream ...