使用addeventlistener-Javascript创建滚动事件
我试图在vanilla JS中实现一些东西,但这不是玩球。我有一个元素,我想在特定的滚动长度后改变颜色,但当我使用addEventListener(“滚动”,函数)等时,它不起作用,但我的控制台中没有任何错误。使用addeventlistener-Javascript创建滚动事件,javascript,html,scroll,addeventlistener,Javascript,Html,Scroll,Addeventlistener,我试图在vanilla JS中实现一些东西,但这不是玩球。我有一个元素,我想在特定的滚动长度后改变颜色,但当我使用addEventListener(“滚动”,函数)等时,它不起作用,但我的控制台中没有任何错误。 任何帮助都会很棒 艾米丽 代码如下,我这里有一支笔: HTML JAVASCRIPT var box = document.getElementsByClassName('box')[0]; window.addEventListener('scroll', function() {
任何帮助都会很棒 艾米丽 代码如下,我这里有一支笔: HTML JAVASCRIPT
var box = document.getElementsByClassName('box')[0];
window.addEventListener('scroll', function() {
if (box.scrollTop > 0) {
box.style.background = "blue";
}
});
您必须在文档
正文
元素上获取滚动条
,而不是在您的框上。在您的情况下,box.scrollTop
将始终为0
替换此项:
if (box.scrollTop > 0) {
box.style.background = "blue";
}
为此:
if (document.body.scrollTop > 0) {
box.style.background = "blue";
}
另外请注意,现在最好使用window.pageYOffset作为document.body.scrollTop
在严格模式下不推荐使用。了解有关在整个窗口上滚动检测的更多信息
演示:您必须在文档
正文
元素上获得滚动条
,而不是在您的方框上。在您的情况下,box.scrollTop
将始终为0
替换此项:
if (box.scrollTop > 0) {
box.style.background = "blue";
}
为此:
if (document.body.scrollTop > 0) {
box.style.background = "blue";
}
另外请注意,现在最好使用window.pageYOffset作为document.body.scrollTop
在严格模式下不推荐使用。了解有关在整个窗口上滚动检测的更多信息
演示:这是因为
box.scrollTop
总是返回0
。添加console.log(box.scrollTop)代码>位于if()
语句上方,您将在控制台中看到box.scrollTop
的结果。这是因为box.scrollTop
始终返回0
。添加console.log(box.scrollTop)代码>在if()
语句上方,您将在控制台中看到框的结果。