使用slider组件做歌曲进度条,滑动时出现抖动

2021-11-28  本文已影响0人  IT_小学生

使用微信小程序 写音乐播放器,遇到 关于 slider 组件抖动的问题
问题是这样的:如果滑动或者点击 进度条,进度条会出现抖动,这是可能是因为在onTimeUpdate()中计算 并且设置了当前时间,导致出现的抖动。

解决思路:
1.解决拖动时产生的抖动
在 进度条的滑动开始事件 bindchanging 设置一个变量 比如 move = true,然后在 ‘设置进度条的位置’ 这个代码块里面的上方加个判断 如果 move == true 就直接返回,不进行设置进度条的位置,然后在 进度条的滑动结束事件bindchange 中将 move = false 就行

2.解决点击或者拖动后,进度条抖动
slider有两个事件:拖动中有个changing事件,单击或者结束拖动时change事件

 大概思路就是 :给changing事件清除 定时器,change事件 再 设置定时器。

这个案例中需要获取进度更新歌词,所以写两个监听函数,一个更新滑动条,一个更新歌词和歌词的时间,changing清掉 更新滑动的 定时器,change 设置新的定时器。

 更新歌词和歌词时间的定时器不用管,让他自己更新着。如果要暂定歌曲,肯定也要暂停定时器,这时就要你自己写一些关于歌曲是不是在播放的判断在定时器里面。
data: {
    timerInterSlider: '',
    timerInter: '',
},
onLoad: function (options) {
    this.setData({
      timerInter: setInterval(() => {
        this.changeSlider2()
      }, 500),
      timerInterSlider: setInterval(() => {
        this.changeSlider()
      }, 500),
    })
  },
// 清除定时器语句  clearInterval(this.data.timerInterSlider)
// 记得在页面销毁时,清除定时器
截屏2021-11-29 下午2.57.37.png 截屏2021-11-29 下午3.16.24.png
上一篇下一篇

猜你喜欢

热点阅读