scrollTop属性在滚动事件监听器中无法生效的问题求助
scrollTop属性在滚动事件监听器中无法生效的问题求助
嘿,我完全懂你现在的困惑——刚接触事件监听和scrollTop的时候很容易踩这个小坑!
你代码里的问题核心在于:document对象本身并没有scrollTop属性,你得找对正确的元素来获取滚动距离才行。
通常我们获取页面垂直滚动距离,有两种靠谱的方式:
- 标准模式下用
document.documentElement.scrollTop(对应HTML根元素) - 或者用兼容性更好的
window.pageYOffset,它在所有现代浏览器里都能正常工作
另外,你的函数名叫handleclick但其实是监听滚动事件,虽然不影响功能,但改成handleScroll会更语义化哦~
修改后的代码应该是这样的:
document.addEventListener("scroll", handleScroll); function handleScroll() { // 用pageYOffset或者document.documentElement.scrollTop都行 if (window.pageYOffset > 20) { alert("Hello World"); } }
还有个小提醒:要确保你的页面内容足够长,能让浏览器出现滚动条,不然根本触发不了滚动事件哦!
备注:内容来源于stack exchange,提问作者user22477980




