Javascript检测浏览器滚动到顶部?

时间:2013-05-07 14:52:16

标签: javascript scroll browser

如何修改以下代码以检测滚动到首页。

window.onscroll = function(ev) {
    if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {
        alert(bottom);
    }
};

编辑:

我正在使用IE 10 for Windows Phone 8 BTW

6 个答案:

答案 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");
    }        
};

DEMO

答案 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");
}

为我工作

https://www.w3schools.com/jsref/event_onscroll.asp

答案 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);
    }
};

两者都适合我。