用better-scroll做轮播图,不能无缝循环

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-22 21:04   17   0

2018年6月13日

引用

"better-scroll": "^1.12.0",

现象:

  1. 可以轮播,但不能循环(不能从第一张往前翻,不能从最后一张往后翻)
  2. 按教程里给slider-group增加了2个slider的宽度,但他们出现在轮播图片的末尾(2个空白)
  3. 第一张图没有对应dot,第二张图对应第一个dot,以此类推
经过网友分享,我又重新整理了下面的问题,部分引用了网友答案
后经网友分享,发现0.1.15中可以正常运行,原来是better-scoll版本的问题,在新版本中,轮播图的bs对象需要这么配置(snap写在一个对象中):
[javascript] view plain copy
  1. this.slider = new BScroll(this.$refs.slider, {
  2. scrollX: true,
  3. scrollY: false,
  4. momentum: false, // 惯性
  5. snap: {
  6. loop: this.loop, // 循环
  7. threshold: 0.3,
  8. speed: 400 // 轮播间隔
  9. },
  10. click: true
  11. })
还有一些小修改,可能是个人原因,也可能是版本差异,贴出来给大家一下:
  1. dot与图片不对应:
    [javascript] view plain copy
    1. // bs对象配置方法中(配置后):
    2. this.slider.on('scrollEnd', () => {
    3. let pageIndex = this.slider.getCurrentPage().pageX
    4. // 老版本有,新版去掉:
    5. // if (this.loop) {
    6. // pageIndex -= 1
    7. // }
    8. this.currentPageIndex = pageIndex
    9. if (this.autoPlay) {
    10. clearTimeout(this.timer)
    11. this._play()
    12. }
    13. })

[javascript] view plain copy
  1. _play() {
    let pageIndex = this.currentPageIndex + 1
  2. //老版本有,新版删掉
    if (this.loop) {
    pageIndex += 1
    }
    this.timer = setTimeout(() => {
    //this.slider.goToPage(pageIndex, 0, 400)
this.slider.next() //老版本是用的goToPage ,但是只到最后一张图片,不能继续轮播,我换成了next()问题就解决了 }, this.interval)



分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP