javascript - JS : Making two functions do the same thing

标签 javascript function variables scope

有办法缩短这个时间吗?

var scrollPos = function() {
    var bodyTopPos =
        header.style.top <
        ( document.body.scrollTop || document.documentElement.scrollTop ) -91;
        header.setAttribute('class', bodyTopPos ? 'sticky' : '');
}();

window.onscroll = function() {
    var bodyTopPos =
        header.style.top <
        ( document.body.scrollTop || document.documentElement.scrollTop ) -91;
        header.setAttribute('class', bodyTopPos ? 'sticky' : '');
}

我尝试编写以下内容,但它似乎会自动将 header 类设置为粘性。

var scrollPos = function() {
    var bodyTopPos =
        header.style.top <
        ( document.body.scrollTop || document.documentElement.scrollTop ) -91;
        header.setAttribute('class', bodyTopPos ? 'sticky' : '');
}();

window.onscroll = scrollPos();

你可以看到我的工作 fiddle 示例 HERE

最佳答案

很简单,只需将其设为一个命名函数,调用它,并将其设置为 onscroll 处理程序即可。

function scroll() {
    var bodyTopPos =
        header.style.top <
        ( document.body.scrollTop || document.documentElement.scrollTop ) -91;
        header.setAttribute('class', bodyTopPos ? 'sticky' : '');
}
scroll();
window.onscroll = scroll;

关于javascript - JS : Making two functions do the same thing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27880545/

相关文章:

javascript - ng-repeat 不渲染最后两个 div

javascript - 如何在 d3 中的条形图更新数据之间转换?

javascript - 单击触发器时不会出现 div

variables - 地形变量中的 map 内的 map

c++ - 函数在经过 while 循环时不更新变量

javascript - DotNet Highcharts - 隐藏特定图例标签

c - 一次执行多个函数

c++ - "Read Access Violation: This was nullptr"以为我正确分配了它......?

c - 不返回字符串。这个程序将 123 这样的数字转换为 "One Two Three"这样的单词,为什么最后我什么也没有得到?

C++ 为一个字符设置值**