基于better-scroll的轮播图组件开发二

2019-05-15  本文已影响0人  buctor

在前面已经完成了最基本的slider的创建,下面将为slider添加autoPlay功能

    _play() {
      clearTimeout(this.timer)
      this.timer = setTimeout(() => {
        this.slider.next()
      }, this.interval)
    }

该函数实现的功能为清除上一个timer,然后在interval毫秒后,滚动到下一页操作

但是,这样做只会执行一次,所以,需要在
-滚动结束后: scrollEnd
-手指离开: touchEnd
后都需要执行这个函数,但是要判断aotuPlay是否为true
而且在滚动开始之前,需要清除上一次的timer
以scrollEnd为例子:

this.slider.on('scrollEnd', () => {
    if(this.autoPlay){
        this._play()
    }
})

但是scrollEnd还需要考虑dot的改变,所以需要一个函数来封装scrollEnd后执行的操作

滚动开始之前,为了防止滚动过程中突然autoplay所以需要一个函数清除timer

      this.slider.on('beforeScrollStart', () => {
        if (this.autoPlay) {
          clearTimeout(this.timer)
        }
      })

注意,这些函数都放在_initSlider()函数里

上一篇下一篇

猜你喜欢

热点阅读