=号去掉变成 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 <= 0clearInterval(timer);     =号去掉变成  if (document.documentElement.scrollTop < 0clearInterval(timer);  为啥就不行了呢?

写回答

1回答

好帮手慕慕子

2021-07-21

同学你好,可以输出查看下document.documentElement.scrollTop属性值,如下:

http://img.mukewang.com/climg/60f78ccd09ebf24a10440244.jpg

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

http://img.mukewang.com/climg/60f78cfa096dc65f05210760.jpg

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

祝学习愉快~

0

0 学习 · 15276 问题

查看课程