轮播自动播放时,是否可以直接使用setInterval去实现?
来源:4-6 轮播图组件实现(下)
asing1elife
2017-11-23
// 自动播放
_play () {
// 设置一个定时器,间隔为轮播组件属性中的间隔值
setInterval(() => {
// 获取当前页的index,改方法由better-scroll提供
let pageIndex = this.slider.getCurrentPage().pageX
// 判断是否处于循环模式中
if (this.loop) {
// 在循环模式中,会在左右多生成一对轮播,所以表象的pageIndex需要+1
pageIndex += 1
}
// 将计算后的pageIndex回传到slider的方法中,该方法又better-scroll提供
// 第一个值为横向索引,即当前页面索引
// 第二个值为纵向索引,因为该轮播不支持纵向滚动,所以为0
// 第三个值为滚动速度,设为当前间隔的1/10即可
this.slider.goToPage(pageIndex, 0, this.interval / 10)
}, this.interval)
}写回答
1回答
-
不可以用 setInterval,它的逻辑是在滚动到某一页以后,再去延时滚动到下一页
012017-11-24
相似问题