返回顶部按钮这样写可以吗,是不是性能不太好
来源:2-6 实现返回顶部动画
DanielDu87
2023-01-23 16:24:11
setInterval(function() {
if (document.documentElement.scrollTop === 0) {
backtotop.style.display = "none";
} else {
backtotop.style.display = "block";
}
}, 10);1回答
好帮手慕久久
2023-01-26
同学你好,解答如下:
1、代码逻辑是有问题的。定时器每10ms就执行一次,但是执行时,代码中并没有改变页面的滚动距离,即没有如下代码:

页面滚动距离不变,就无法回到顶部,document.documentElement.scrollTop === 0这个条件也无法满足。
2、同学的代码,定时器一旦开启就无法关闭了,所以页面中始终会有一个定时器在执行,性能肯定不如课程中的写法好。不过,现在浏览器、电脑的性能都很高,一个定时器造成的性能问题可以忽略不计。
3、document.documentElement.scrollTop === 0这个条件也不是很优。页面滚动距离的数值会很随机(可能100、200,也可能是101、12、57.66666等等),页面滚动到顶部的瞬间,代码计算到的document.documentElement.scrollTop的值,可能是小于0的,此时就不满===0。建议改成如下条件
document.documentElement.scrollTop <= 0。
祝学习愉快!
相似问题