我在这里面临一个小问题。我具有有关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();

现在,我希望另一个函数对我的操作按钮产生一些影响,让我们将函数称为“测试”,但是如果我想像上面一样使用这种方法,那么效果函数将不再起作用:
function test(){
//do something
}
window.onscroll = test();

欢迎任何帮助!我认为做到这一点并不是一个很大的挑战,但是我猜我做错了。 (PS:请不要提供JQUERY)

最佳答案

您通过执行window.onscroll = blabla覆盖onscroll函数

你可以做 :

window.onscroll = function() {
  effects();
  test();
}

或者
window.addEventListener('scroll', effects);
window.addEventListener('scroll', test);

10-07 22:05