这是为什么;OnScroll“;JavaScript函数没有被调用?
我有一个JavaScript代码,当页面向下滚动时,导航栏应该隐藏(或这是为什么;OnScroll“;JavaScript函数没有被调用?,javascript,html,css,Javascript,Html,Css,我有一个JavaScript代码,当页面向下滚动时,导航栏应该隐藏(或边距顶部:-100px)。但是,当页面向上滚动时,导航栏应该出现(或页边距顶部:0) 我不明白为什么在滚动页面时不调用这个函数。我的代码有问题吗?请看下面: let prevScrollpos = window.pageYOffset; window.onscroll = function() { let currentScrollPos = window.pageYOffset; if (prevScrollp
边距顶部:-100px
)。但是,当页面向上滚动时,导航栏应该出现(或页边距顶部:0
)
我不明白为什么在滚动页面时不调用这个函数。我的代码有问题吗?请看下面:
let prevScrollpos = window.pageYOffset;
window.onscroll = function() {
let currentScrollPos = window.pageYOffset;
if (prevScrollpos > currentScrollPos) {
document.getElementById("navbar").style.marginTop = "0";
} else {
document.getElementById("navbar").style.marginTop = "-100px";
}
prevScrollpos = currentScrollPos;
}
我知道函数没有被调用的主要原因是,我在函数中添加了一些简单的脚本(例如alert(“Hello World!”)
,但这也没有发生
谢谢您,我们非常感谢您的帮助。您的代码库中是否有多个
窗口。onscroll
声明?如果有,每次都会覆盖它们
let prevScrollpos = window.pageYOffset;
window.addEventListener('scroll', function() {
let currentScrollPos = window.pageYOffset;
if (prevScrollpos > currentScrollPos) {
document.getElementById("navbar").style.marginTop = "0";
} else {
document.getElementById("navbar").style.marginTop = "-100px";
}
prevScrollpos = currentScrollPos;
});
您确定滚动发生在窗口级别吗?可能滚动是一个内部元素,比如div。您的开发工具控制台中有错误吗?(既然代码正常工作,您确定滚动是
navbar
而不是navbar
或其他愚蠢的拼写错误吗?或者可能是在id中放入哈希符号的典型错误(id=“#navbar”
而不是id=“navbar”
)。但是,如果您的警报不起作用,那么听起来您的脚本似乎不正确。@IPP我不确定这为什么不起作用,因为它应该起作用,但接受的答案可以正常工作。我不知道这是否与我的浏览器或其他问题有关。不管怎样,接受的警报都起作用。很抱歉,我无法接受并更新昨天的SQL ServerStackOverflow的服务器正在更新。