Javascript - 执行多个不同的 window.onscroll

标签 javascript function onscroll

我在这里遇到了一个小问题。我对 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);

关于Javascript - 执行多个不同的 window.onscroll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39998667/

相关文章:

javascript - 让 tinyMCE 拼写检查器插件与 IE6 一起工作的问题

javascript - Firefox 中与 JavaScript 事件相关的 F5 和 Ctrl-F5 有什么区别?

function - 在 Julia 的函数作用域内的 if 语句内定义函数的结果错误

Javascript仅适用于滚动事件?

javascript - Angular 重定向不起作用

javascript - 如何在 Parse 中获取对象和该对象的特定关系?

php - 无法让登录页面重定向到安全页面

javascript - React 将组件作为参数传递给函数

reactjs - Material-UI 和 React : Using the Fade component onScroll

android - 滚动回到 listvview 的顶部