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

现象:
  1. 可以轮播,但不能循环(不能从第一张往前翻,不能从最后一张往后翻)
  2. 按教程里给slider-group增加了2个slider的宽度,但他们出现在轮播图片的末尾(2个空白)
  3. 第一张图没有对应dot,第二张图对应第一个dot,以此类推
后经网友分享,发现0.1.15中可以正常运行,原来是better-scoll版本的问题,在新版本中,轮播图的bs对象需要这么配置(snap写在一个对象中):
      this.slider = new BScroll(this.$refs.slider, {
        scrollX: true,
        scrollY: false,
        momentum: false, // 惯性
        snap: {
          loop: this.loop, // 循环
          threshold: 0.3,
          speed: 400 // 轮播间隔
        },
        click: true
      })
还有一些小修改,可能是个人原因,也可能是版本差异,贴出来给大家一下:
  1. 降版本后dots会多两个:
    _initDots() {
          // this.dots = new Array(this.children.length) // 原写法
          this.dots = new Array(this.children.length - 2)
        },

  2. dot与图片不对应:
      // bs对象配置方法中(配置后):
      this.slider.on('scrollEnd', () => {
            let pageIndex = this.slider.getCurrentPage().pageX
            // 老版本有,新版去掉:
            // if (this.loop) {
            //   pageIndex -= 1
            // }
            this.currentPageIndex = pageIndex
    
            if (this.autoPlay) {
              clearTimeout(this.timer)
              this._play()
            }
          })

    在下的项目和经验都会上传在github上,有帮助的请赏个star,Thanks♪(・ω・)ノ~github



你可能感兴趣的:(踩坑,vue)