=号去掉变成 if (document.documentElement.scrollTop < 0) clearInterval(timer);
来源:2-14 BOM特效开发(1)
慕粉0915
2021-07-21 10:44:56
<body>
<div id="box">返回顶部</div>
<script>
var box = document.getElementById('box');
var timer;
box.onclick = function () {
clearInterval(timer);
timer = setInterval(function () {
document.documentElement.scrollTop -= 50;
if (document.documentElement.scrollTop <= 0) clearInterval(timer);
}, 10)
}
</script>
</body>
如果把这句话里的if (document.documentElement.scrollTop <= 0) clearInterval(timer); =号去掉变成 if (document.documentElement.scrollTop < 0) clearInterval(timer); 为啥就不行了呢?
1回答
好帮手慕慕子
2021-07-21
同学你好,可以输出查看下document.documentElement.scrollTop属性值,如下:

当点击按钮返回顶部,此时的scrollTop属性值为0,如下:

如果将等号去掉,那就表示在scrollTop属性值小于0的时候才清除定时器,但是,返回顶部时scrollTop属性值等于0,并不满足小于0的条件,就不会执行if语句清除定时器,所以无法实现效果。
祝学习愉快~
相似问题