swiper.js在隐藏/显示切换时,轮播出现bug的解决办法

本文介绍了解决Swiper在由隐藏状态切换至显示状态时出现的滑动卡顿及最后一张图片移出可视区域的问题。通过将observe属性设置为true,确保分页器状态得到及时更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

swiper在 swiper-container正常状态下显示,轮播是没有问题,但是当 swiper-container由隐藏切换至显示时(比如做图片查看时)会出现滑动bug,滑动卡顿而且最后一张可以移出可视区域,

出现问题的原因是分页器没有更新,所以要监控分页器的状态,官方提供一个属性 observe(observeParents)默认值false,修改为true即可,在切换container显示隐藏时便会回归正常。

这个问题官网提供了解决的方法,只需要设置一个属性就行,代码如下:

var mySwiper = new Swiper('.swiper-container', {                   
      observer:true,//启动动态检查器,当改变swiper的样式(例如隐藏/显示)或者修改swiper的子元素时,自动初始化swiper                  
                    
})

官方链接:http://3.swiper.com.cn/api/Observer/2015/0308/218.html

转载于:https://www.cnblogs.com/web-wjg/p/9209643.html

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="../css/swiper.min.css"> <link rel="stylesheet" href="../css/demo.css"> <title>Document</title> </head> <body> <div class="seamlesswrap"> <!-- 1.swiper无缝轮播 --> <div class="swiper-container seamless01-swiper"> <div class="swiper-wrapper"> <div class="swiper-slide"> <img src="../img/img01.jpg"/> </div> <div class="swiper-slide"> <img src="../img/img02.jpg"/> </div> <div class="swiper-slide"> <img src="../img/img03.jpg"/> </div> <div class="swiper-slide"> <img src="../img/img04.jpg"/> </div> <div class="swiper-slide"> <img src="../img/img05.jpg"/> </div> <div class="swiper-slide"> <img src="../img/img06.jpg"/> </div> <div class="swiper-slide"> <img src="../img/img07.jpg"/> </div> </div> </div> <div class="swiper-container seamless02-swiper"> <div class="swiper-wrapper"> <div class="swiper-slide"> <img src="../img/img01.jpg"/> </div> <div class="swiper-slide"> <img src="../img/img02.jpg"/> </div> <div class="swiper-slide"> <img src="../img/img03.jpg"/> </div> <div class="swiper-slide"> <img src="../img/img04.jpg"/> </div> <div class="swiper-slide"> <img src="../img/img05.jpg"/> </div> <div class="swiper-slide"> <img src="../img/img06.jpg"/> </div> <div class="swiper-slide"> <img src="../img/img07.jpg"/> </div> </div> </div> </div> </body> <script src="../js/jquery.js"></script> <script src="../js/swiper.min.js"></script> <script> $(function(){ var mySwiper = new Swiper('.seamless01-swiper', { observer: true, //开启动态检查器,监测swiper和slide observeParents: true, //监测Swiper 的祖/父元素 speed: 4000,//切换速度 loop:true,//循环 slidesPerView:4,//显示数量 spaceBetween:10,//间隔 freeMode:true,//自动贴合 autoplay: {//自动播放 delay: 0,//自动切换间间隔 stopOnLastSlide: false,//切换到最后一个slide停止自动切换 disableOnInteraction: false,//用户操作后是否停止 }, breakpoints: { 750: { //当屏幕宽度大于等于320 slidesPerView: 3, }, } }); var mySwiper = new Swiper('.seamless02-swiper', { observer: true, //开启动态检查器,监测swiper和slide observeParents: true, //监测Swiper 的祖/父元素 speed: 4000,//切换速度 loop:true,//循环 slidesPerView:4,//显示数量 spaceBetween:10,//间隔 freeMode:true,//自动贴合 autoplay: {//自动播放 delay: 0,//自动切换间间隔 stopOnLastSlide: false,//切换到最后一个slide停止自动切换 disableOnInteraction: false,//用户操作后是否停止 reverseDirection: true,//方向切换 }, breakpoints: { 750: { //当屏幕宽度大于等于320 slidesPerView: 3, }, } }); }) </script> </html> 在横向无线滚动每一张图片结束后会有卡顿一下后继续滚动,应该如何解决
最新发布
08-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值