解决使用 swiper 常见的问题
使用 swiper 的过程中个人总结
1. swiper插件使用方法, 直接查看文档
2.swiper近视初始化时, 其父级元素处于隐藏状态(display:none),会导致swiper初始化失败, 页面中的滚动效果有问题
解决方法1:
var mySwiper = myApp.swiper('.guest-wrapper',{
observer: true,//修改swiper自己或子元素时,自动初始化swiper
observeParents: true//修改swiper的父元素时,自动初始化swiper
});
解决方法2:
直接写死宽高
var mySwiper = myApp.swiper('.guest-wrapper',{
width:500,
height:500
});
3.滚动swiper插件中嵌套滚动插件, 要求子插件滚动全部完成后成能进行父元素的滚动 ==(swiper4 中滚动嵌套)==
//外层的父级 swiper 初始化
window.window_swiper = new Swiper('.window_swiper_container', {
speed: 800,
mousewheel: true,
simulateTouch: false,
nested: true,
on: {
onSlideChangeStart: function(swiper) { //滑动父级需要激活滚轮事件
swiper.enableMousewheelControl();
}
}
});
// 内层子 swiper 初始化(可用在多个子 swiper 上)
var swiper = new Swiper('.{{ns}}-swiper', {
simulateTouch: false,
mousewheel: true,
nested: true,
on: {
slideChangeTransitionStart: function () {
//此处禁止 外层 swiper
window.window_swiper.mousewheel.disable();
},
slideChangeTransitionEnd: function () {
window.window_swiper.mousewheel.enable();
}
}
});
4.swiper里面的图片懒加载与预加载, 可以使用自带的 lazyload 方法
swiper4 懒加载文档
设为true开启图片延迟加载默认值,使preloadImages无效。或者设置延迟加载选项。
图片延迟加载:需要将图片img标签的src改写成data-src,并且增加类名swiper-lazy。
背景图延迟加载:载体增加属性data-background,并且增加类名swiper-lazy。
还可以加一个预加载,<div class="swiper-lazy-preloader"></div>
或者白色的<div class="swiper-lazy-preloader swiper-lazy-preloader-white"></div>
当你设置了slidesPerView:'auto' 或者 slidesPerView > 1,还需要开启watchSlidesVisibility。
var mySwiper = new Swiper('.swiper-container', {
lazy: {
loadPrevNext: true,
},
});
5. 取消拖动最后一页或者第一页时的留白状态
抵抗率。边缘抵抗力的大小比例。值越小抵抗越大越难将slide拖离边缘,0时完全无法拖离。
6. 移动端顶部长菜单超出隐藏
7.free模式/抵抗反弹 freeMode
默认为false,普通模式:slide滑动时只滑动一格,并自动贴合wrapper,设置为true则变为free模式,slide会根据惯性滑动且不会贴合。
8.最后一页的高度较小时的切换(最后一个页脚不是全高的页面展示)
var mySwiper = new Swiper('.swiper-container',{
slidesPerView : 2,//'auto'
//slidesPerView : 3.7,
//如果设置为auto(例如制作全屏展示时的页脚部分),最后一个slide在键盘或鼠标滚动时可能会直接跳到倒数第三个slide,
//此时可以手动设置activeIndex解决,如下
onTransitionEnd: function(swiper){
if(swiper.progress==1){
swiper.activeIndex=swiper.slides.length-1
}
}
})
9.Effects (切换效果)
slide的切换效果,默认为"slide"(位移切换),可设置为"fade"(淡入)"cube"(方块)"coverflow"(3d流)"flip"(3d翻转)。
10.内容滚动(在ios下也能滚动的很流畅)
//css
html, body {
position: relative;
height: 100%;
}
body {
background: #fff;
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
font-size: 14px;
color:#000;
margin: 0;
padding: 0;
}
.swiper-container {
width: 700px;
height: 100%;
}
.swiper-slide {
font-size: 18px;
height: auto;
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 30px;
font-size:13px;font-family:microsoft yahei; line-height:1.8;
}
p{
margin-bottom:1em;
}
//html
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide">
<p>无限多的内容无限多的内容无限多的内容无限多的内容</p>
</div>
</div>
<!-- Add Scroll Bar -->
<div class="swiper-scrollbar"></div>
</div>
//js
var swiper = new Swiper('.swiper-container', {
scrollbar: '.swiper-scrollbar', //滚动条的类名
direction: 'vertical', // 竖列排行
slidesPerView: 'auto', // 可同时展示多少个 slide
mousewheelControl: true, //鼠标滚轮
freeMode: true, // slide 是否贴合侧边
roundLengths : true, //防止文字模糊
});
11. 想在轮播图外创建分页器、上一页和下一页的按钮(因为swiper的container默认overflow:hidden, 只能在轮播图中的可视区域显示切换菜单和上一页下一页)
独立分页元素,当启用(默认)并且分页元素的传入值为字符串时,swiper会优先查找子元素匹配这些元素。可应用于分页器,按钮和滚动条。
var mySwiper = new Swiper('.swiper-container',{
pagination : '.swiper-pagination',
uniqueNavElements :false,
})
点击查看swiper的 API 文档
解决使用 swiper 常见的问题的更多相关文章
- windows7下php5.4成功安装imageMagick,及解决php imagick常见错误问题。(phpinfo中显示不出来是因为:1.imagick软件本身、php本身、php扩展三方版本要一致,2.需要把CORE_RL_*.dll多个文件放到/php/目录下面)
windows7下 php5.4成功安装imageMagick . (phpinfo中显示不出来是因为:1.软件本身.php本身.php扩展三方版本要一致,2.需要把CORE_RL_*.dll多个 ...
- 【错误解决】SVN常见错误及解决方式
1.Error while creating module:org.apache.subversion.javahl.ClientException:Authorization failed svn: ...
- Nginx 403 forbidden的解决办法
Nginx 403 forbidden的解决办法. 常见的,引起nginx 403 forbidden有二种原因,一是缺少索引文件,二权限问题. 1.缺少index.html或者index.php文件 ...
- Python的Ftplib问题:UnicodeEncodeError: 'latin-1' codec can't encode characters的解决方法
ftplib中有一个方法是cwd,用来切换目录,需要传入一个dirname,经过个人测试,该dirname不能含有汉字,会抛出:UnicodeEncodeError: 'latin-1' codec ...
- 浅谈区间DP的解题时常见思路
一.区间DP解题时常见思路 如果题目中答案满足: 大的区间的答案可以由小的区间答案组合或加减得到 大的范围可以由小的范围代表 数据范围较小 我们这时可以考虑采用区间DP来解决. 那么常见的解法有两种: ...
- 解决php函数json_encode转换后中文被编码为unicode
大家都知道使用函数json_encode()可以方便快捷地将数组进行json编码转换,但是如果数组值存在着中文,json_encode会将中文转换为unicode编码,例如: <?PHP $ar ...
- 《Visual C++ 2010入门教程》系列六:VC2010常见调试技术
<Visual C++ 2010入门教程>系列六:VC2010常见调试技术 犹豫了好久,最终还是决定开始这一章,因为我不清楚到底有没有必要写这样的一章,是应该在这里说明一些简单的调试方 ...
- WIN8.1的安装和打开"这台电脑"速度很慢的解决办法
WIN8.1的安装和打开"这台电脑"速度很慢的解决办法 对于非服务器用的电脑,如果电脑的内存在2G或更高,首推的操作系统是 WINDOWS8.1 64位企业版,用了就知道,没有比这流畅懂事的操作系统. ...
- Web开发的编码解决中文乱码
中文乱码有两个环节会出现 第一,从请求体中获得的数据 从请求体中获得的数据要为其进行编码,默认为ISO-8859-1,所以在使用getParameter()时先调用setCharacterEncodi ...
随机推荐
- Visual Studio双击打开项目而不是项目属性文件
从VS2019版本就默认勾选了这个,每次打开都是到属性文件,这个根本用不到,点击小三角又比较麻烦,不知道为啥微软给了这个默认功能 VS2022 Preview也是,默认勾选 勾选如下即可:
- laravel 访问器 和修改器的使用
对于访问器我是这样定义的,就是将数据库中的数据被访问时可以变成我们想要的数据类型(例如:数据库中的时间字段是int类型,要将她变成data(Y-m-d H:i:s),格式类型) 参看博客 https: ...
- Kubernetes:Ingress总结(一)
Blog:博客园 个人 参考:Ingress | Kubernetes.<Kubernetes进阶实战>.<Kubernetes网络权威指南 > 何谓Ingress?从字面意思 ...
- BSOJ6388题解
看上去就很神秘...考虑建出图论模型. 我们将一张牌的两面 \(a,b\) 连一条边. 考虑一个连通块的意义是什么. 边是一张牌,容易发现,如果连通块是一棵树,那么选择一个根节点相当于可以打出除了根节 ...
- Java工具之Myeclipse程序调试
步骤1: 分析错误,设置断点 步骤2: 启动调试 步骤3: 单步运行 (1)调试启动后,运行到设置断点的代码行将停住 (2)点击F6键可以单步运行程序,观察程序运行过程. (3)使用F5进入方法中进行 ...
- 前端经典面试题vue面试题
1.什么是MVVM? MVVM是一种设计思想. Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑: View 代表UI 组件,它负责将数据模型转化成UI 展现出来,View ...
- 使用Geth 构建以太坊区块链并模拟挖矿过程
使用Geth 构建以太坊区块链并模拟挖矿过程 Go-ethereum 是以太坊官方的一个Golang 实现,我们可以使用Geth 工具来创建创世区块并启动区块链,使用Clef 实现以太坊钱包的功能,以 ...
- 保姆级SpringBoot+Vue图片上传到阿里云OSS教程
小二是新来的实习生,作为技术 leader,我给他安排了一个非常简单的练手任务,把前端 markdown 编辑器里上传的图片保存到服务器端,结果他真的就把图片直接保存到了服务器上,这下可把我气坏了,就 ...
- Microsoft Edge如何安装去广告插件
Microsoft Edge如何安装去广告插件 第一步:安装最新版本Edge https://www.microsoft.com/zh-cn/edge?form=MA13DO&OCID=MA1 ...
- ChIP-seq技术介绍|易基因
大家好,这里是专注表观组学十余年,多组学科研服务领跑者的易基因. 染色质免疫沉淀后测序(ChIP seq)是一种针对DNA结合蛋白.组蛋白修饰或核小体的全基因组分析技术.由于二代测序技术的巨大进步,C ...