9

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

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

编辑:

我正在为 Windows Phone 8 BTW 开发 IE 10

4

6 回答 6

20

设法弄清楚了。这是我的代码:

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

检查它运行:

window.onscroll = function(ev)
{
	var B= document.body; //IE 'quirks'
        var D= document.documentElement; //IE with doctype
        D= (D.clientHeight)? D: B;
	
	if (D.scrollTop == 0)
		{
			alert("top");
		}        
};
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>

此代码如何工作的说明:

window.onscroll是将onscroll 事件分配给window元素的命令。

现在,当滚动元素的滚动条时onscroll触发事件。,在这种情况下,元素将是它本身。window

现在,function将在事件触发时调用。

在函数中,我们将“document.body”获取为 en IE 是获取它的方式。在此之后,如果有文档类型,我们将获得 documentElement。

然后,这一行是在document.clientHeight通知时在文档或正文之间进行选择的行。如果被告知,它将把文件放在可变文件上。如果没有,它将把身体本身。在此之后,它将检查 scrollTop属性以了解当前滚动位置是否在“顶部”

于 2013-05-08T05:44:42.213 回答
5

window.scrollY根据 MDN不是跨浏览器。在 IE<9 上,您必须检查document.body.scrollTop,因为没有 的属性window会给您当前的滚动位置。实际上,document.body.scrollTop这是我最常使用的,因为根据我的经验,它确实有效。

于 2013-05-07T16:04:15.103 回答
0
if (document.body.scrollTop == 0 || document.documentElement.scrollTop == 0) 
{
    alert("top");
}

为我工作

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

于 2018-03-21T19:44:54.157 回答
0

仅使用 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);
于 2018-05-02T18:55:24.610 回答
0

它真的很简单:

$(window).on('scroll', function () {
  let scrollAmount = window.scrollY;
  console.clear()
  console.log(scrollAmount)
});
于 2019-01-23T13:39:28.647 回答
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);
    }
};

两者都为我工作。

于 2021-06-15T22:24:32.507 回答