【发布时间】:2014-10-21 04:36:41
【问题描述】:
我有一个 javascript 文件,用于将单个绝对 div 对齐以始终与水平滚动位置对齐。
我无法弄清楚我的代码有什么问题 - onscroll 似乎会触发一次,然后在 Internet Explorer 和 firefox 中都不会再次触发。
有人有什么想法吗?我一直在寻找这个,但我无法弄清楚错误。 (我已经尝试过 onscroll += 和 onscroll =,都不起作用)。那个 39 偏移只是为了确保脚本在我让它工作之前被触发。
window.onload=scrollSet;
function scrollSet(){
window.onscroll += KeepLeftAtScroll();
}
function KeepLeftAtScroll(){
var ele=document.getElementById("topAboveMenuMargin");
if (ele != null){
ele.style.left = 39+ document.documentElement.scrollLeft;
}
}
【问题讨论】:
-
为什么你要覆盖原生
window.onscroll?KeepLeftAtScroll甚至不返回任何东西。 -
我用它来触发每次滚动窗口时重新定位 div 的代码。
-
不,你用
NaN覆盖window.onscroll,它不会触发任何东西; )。onscroll应该是一个函数。可能window.onscroll = KeepLeftAtScroll;做你想做的事。 -
按照说明,我试过+=和=,但我不知道+=覆盖了。谢谢,我会记住的。使用 = KeepLeftAtScroll,它仍然只触发一次。
-
你确定你只有
KeepLeftAtScroll,不是KeepLeftAtScroll()吗?
标签: javascript internet-explorer firefox onscroll