为什么我将speed改为Math.round(speed)之后,就不能再次滚动滚动条了?

var top = document.getElementsByClassName("top")[0];

   var timer = null;
   top.onclick=function()
   {
       timer=setInterval(function () {
           var cur=document.body.scrollTop;
           var speed=(0-cur)/2;
        speed=speed>0?Math.ceil(speed):Math.floor(speed);

// speed=Math.round(speed);这句是注释的

           if(cur==0){
               clearInterval(timer);
           }
           else{
               document.body.scrollTop=cur+speed;

           }
       },30)

   };

}
就是将speed由 speed=speed>0?Math.ceil(speed):Math.floor(speed);改为
speed=Math.round(speed);之后再点击元素回到页面顶部的时候,是可以正常回到页面顶部,但是
滚动鼠标滚轮的时候,滚动条不能动,一直往上走的趋势,而且页面不停的闪动,这是为什么?就改了speed值,效果就没了

阅读 1.4k
1 个回答
var speed = 0.4;
speed=speed>0?Math.ceil(speed):Math.floor(speed);
// speed = 1;
speed=Math.round(speed);
// speed = 0;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题