Swiper中文论坛

标题: swiper在动态绑定数据之后,不能滑动。 [打印本页]

作者: chinese_yu    时间: 2017-12-27 10:01
标题: swiper在动态绑定数据之后,不能滑动。
在我添加observer参数之后可以滑动,但是还存在bug:添加loop参数之后,

每次滑动到最后一张时,

再次滑动不能滑动到第一张而是到第二张。

有点乱,不知道能不能明白。。。。。



微信图片_20171227100105.png (169.37 KB, 下载次数: 317)

微信图片_20171227100105.png

作者: 胖猫    时间: 2017-12-27 11:12
不,明白..
作者: admin    时间: 2017-12-27 11:37
update呢

作者: muzi    时间: 2017-12-27 18:08
我也遇到这个问题了,急求啊啊啊。网上都没看到解决方法
作者: chinese_yu    时间: 2017-12-28 10:42
胖猫 发表于 2017-12-27 11:12
不,明白..

给swiper动态绑定数据不能滑动,然后加了observer参数之后可以滑动了,
但是还存在一个bug,就是:
我添加loop让swiper可以循环,【这里就出现问题了】
当我滑动到最后一张,再次滑动时,正确的应该是  swiper到  第一张,
而现实是,swiper直接滑到了第二张。。。


这样解释明白么。。。。
作者: chinese_yu    时间: 2017-12-28 10:43
admin 发表于 2017-12-27 11:37
update呢

update似乎不行

var swiper = new Swiper('.swiper-container', {
              loop: true,
              observer: true,
              observeParents:true
            });
            swiper.update();

这样没有效果。
作者: chinese_yu    时间: 2017-12-28 10:45
muzi 发表于 2017-12-27 18:08
我也遇到这个问题了,急求啊啊啊。网上都没看到解决方法

我现在不用loop,也就是不让swiper循环,是可以正常滑动的。就先这样吧,着急赶进度,TODO,等有时间慢慢查是啥问题
作者: fusubujian    时间: 2017-12-28 14:12
可以尝试检测当前Index,如果到最后一张,手动调回第一张,重新开始滚动
作者: 2495152029    时间: 2017-12-28 18:01
写法问题,调用位置也不对,observer和update重复了。楼主说的问题没把代码粘出来。
作者: IT大汉    时间: 2017-12-28 23:26
我用的是swiper4,最新的,我的没问题的。第一,各个需要的JS加载路径检查下;第二,加载JS和数据显示先后顺序检查下,加载JS放数据显示之后执行;第三,(observer:true,//当改变swiper的样式(例如隐藏/显示)或者修改swiper的子元素时,自动初始化swiper。)这个要加;第四,你的.swiper-container要加个宽和高。这些都做到了,就没问题了。
作者: chinese_yu    时间: 2018-1-2 09:50
本帖最后由 chinese_yu 于 2018-1-2 10:04 编辑
muzi 发表于 2017-12-27 18:08
我也遇到这个问题了,急求啊啊啊。网上都没看到解决方法

解决了,
var timerOut, swiper;
        timerOutFun();
        function timerOutFun() {
          timerOut = setTimeout(function () {
            if (self.ProductVo) {
              swiper = new Swiper('.swiper-container', {
                loop: true,
                autoplay: 3000,
                pagination: {
                  el: '.swiper-pagination',
                }
              });
              clearTimeout(timerOut);
            } else {
              timerOutFun()
            }
          }, 10)
        }


很暴力的方法,
作者: chinese_yu    时间: 2018-1-2 09:51
IT大汉 发表于 2017-12-28 23:26
我用的是swiper4,最新的,我的没问题的。第一,各个需要的JS加载路径检查下;第二,加载JS和数据显示先后 ...

嗯嗯,是数据加载和js执行顺序的问题,在chrome上打断点查出来的,
作者: whws    时间: 2018-3-26 20:51
我今天也遇到了,用的 vue swiper,请问你解决了没有啊?
作者: a814274811    时间: 2018-5-11 14:31
路过看看
作者: 493356884    时间: 2018-6-8 10:53
不用loop就好了
作者: 493356884    时间: 2018-6-8 10:56
不用loop就好了,楼上大哥说的对




欢迎光临 Swiper中文论坛 (http://bbs.swiper.com.cn/) Powered by Discuz! X3.2