我在这里遇到了一个小问题。我有关于Javascript的基本知识,我想做以下事情:
现在,当你向下滚动时,菜单会变小。当你向上滚动时,它会恢复正常。我用window.onscroll调用这个事件:
var diff = 0;
function effects(){
var topDistance = (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;
var clientWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
var clientHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
if(topDistance > diff){
diff = topDistance;
if(clientWidth > 1024){
if(topDistance > 300){
document.getElementById("header").style.marginTop= "-100px";
}
}
}else if(topDistance < diff){
diff = topDistance;
if(clientWidth > 1024){
if(topDistance > 300){
document.getElementById("header").style.marginTop= "0";
}
}
}
}
window.onscroll = effects();
现在我想让另一个函数对我对操作按钮的调用有一些效果,让我们调用函数“test”,但如果我想像上面一样做这件事,效果函数就不起作用了:
function test(){
//do something
}
window.onscroll = test();
任何帮助都是受欢迎的!我想这不会是一个很大的挑战,但我想我做错了。请不要询问)
3条答案
按热度按时间qlfbtfca1#
通过执行
window.onscroll = blabla
覆盖onscroll功能您可以:
或
ruoxqz4g2#
可以为scroll事件使用多个侦听器。
这样你就不会覆盖窗口。
mwg9r5ms3#
您应该使用
而不是
window.onscroll