vue-weixin icon indicating copy to clipboard operation
vue-weixin copied to clipboard

通讯录页面点索引‘z’后无法滚动

Open hiblacker opened this issue 7 years ago • 1 comments

点z后滚动到最底部,再往上滚动时会回到最底部,希望大神给个解决办法,不胜感激!

hiblacker avatar Jan 23 '18 11:01 hiblacker

哎,大神不理我,自问自答

原因:首先,animation会根据调用者传入的期望值来完成动画,而点击 z 时,因为到达页面底部而永远无法达到期望值,animation就用一直执行尝试到达预期值,也就是一直往下滚动。

原因找到了,问题也就解决了一半,我是个小白,只能简单粗暴的解决,希望可以抛砖引玉: 1.改animation方法 :设置一个阈值,当执行次数超过阈值时,停止timer。 2.改变传入值:判断预期动画,如果期望的网页卷去高度scrollTop+屏幕可见区域高度>网页总高度时,传入动画值:网页总高度-屏幕高度。也就是滚到页面底部就可以了。

部分代码:

  let [timerTimes,threshold] = [0,50];  // 如果执行超过规定次数(50),停止定时器

  element.timer = setInterval(() => {      
      Object.keys(target).forEach(attr => {
          let iSpeed = 0;  //步长     
     
     //... 省略 ...

      if(threshold){
        timerTimes++
        if(timerTimes>threshold){
            clearInterval(element.timer)
            return
        }
      }
  }, 20);

hiblacker avatar Jan 24 '18 03:01 hiblacker