Javascript 从顶部滚动x像素后触发函数

Javascript 从顶部滚动x像素后触发函数,javascript,html,scroll,dom-events,Javascript,Html,Scroll,Dom Events,我想触发一次(而且只有一次)用户从顶部向下滚动100像素的事件 在过去,我得到了这个代码,但它似乎不工作 window.onscroll = function() { var scrollLimit = 100; var scrollValue = document.body.scrollTop; if (scrollValue >= scrollLimit) { alert("x") } }; 试试这个: var scrollValue = window.scr

我想触发一次(而且只有一次)用户从顶部向下滚动100像素的事件

在过去,我得到了这个代码,但它似乎不工作

window.onscroll = function() {
  var scrollLimit = 100;
  var scrollValue = document.body.scrollTop;
  if (scrollValue >= scrollLimit) {
    alert("x")
  }
};
试试这个:

var scrollValue = window.scrollY;

你在这里用错地方了

您需要使用属性,而不是
scrollTop
属性

这是您的代码应该如何编写的:

window.onscroll = function() {
  var scrollLimit = 100;
  if (window.scrollY >= scrollLimit) {
    alert("x")
  }
};
注:
窗口。滚动
IE的兼容性问题:

不幸的是,
window.scrollY
不适用于IE浏览器,因为IE可以使用
window.pageYOffset
作为替代,但它总是给出数百个四舍五入值
(100200300…)


否则,您可以检查它使用
document.documentElement.scrollTop
作为解决方法。

scrollTop
将为您提供元素顶部和文档顶部之间的偏移量。由于默认情况下html文档的正文从文档顶部开始,因此body.scrollTop始终保持为0,除非您专门使用css使正文不从顶部开始


因此,您必须使用
scrollY
而不是
scrollTop
。如果您使用的浏览器不支持
scrollY
(例如IE),您可以尝试
pageYOffset

,似乎“Window.scrollY”与ie@jeremy是的,但是你可以在IE中使用
window.pageYOffset
作为替换,但它总是给出数百个四舍五入值,或者您可以查看它使用
document.documentElement.scrollTop作为解决方法。非常感谢您的回复。有人用document.documentElement.scrollTop发布了以下代码(我稍微编辑了一下),效果很好。我不知道为什么它被删除了:不适用于ie?