如何修改以下代码以检测滚动到首页。
window.onscroll = function(ev) {
if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {
alert(bottom);
}
};
编辑:
我正在使用IE 10 for Windows Phone 8 BTW
答案 0 :(得分:9)
管理解决问题。这是我的代码
window.onscroll = function() {
var body = document.body; //IE 'quirks'
var document = document.documentElement; //IE with doctype
document = (document.clientHeight) ? document : body;
if (document.scrollTop == 0) {
alert("top");
}
};
答案 1 :(得分:3)
window.scrollY
不是跨浏览器according to MDN。在IE< 9上,您必须检查document.body.scrollTop
,因为window
的任何属性都不会为您提供当前滚动位置。实际上,document.body.scrollTop
是我最常使用的,因为根据我的经验,它只是有效。
答案 2 :(得分:1)
仅使用JS执行此操作的最佳方法是添加事件侦听器的以下示例:
var el = document.getElementById('PUT_YOUR_TOP_ELEMENT_ID_HERE');
el.addEventListener('scroll', function(event) {
if (event.target.scrollTop === 0) {
alert('Top of page detected');
}
}, false);
答案 3 :(得分:0)
if (document.body.scrollTop == 0 || document.documentElement.scrollTop == 0)
{
alert("top");
}
为我工作
答案 4 :(得分:0)
非常简单:
$(window).on('scroll', function () {
let scrollAmount = window.scrollY;
console.clear()
console.log(scrollAmount)
});
答案 5 :(得分:0)
接受的答案给了我一个错误,说“文档未定义”。所以这是我的解决方案。
window.onscroll = function(ev) {
if ((window.innerHeight + window.pageYOffset) == window.innerHeight) {
alert(top);
}
};
这会检查innerHeight + pageYOffset = innerHeight。这意味着您还可以使用:
window.onscroll = function(ev) {
if (window.pageYOffset == 0) {
alert(top);
}
};
两者都适合我。