如何在js中测量屏幕上div和可见高度的总高度?
例如,如果div的总高度为1000px,目前屏幕上只显示450px。
因为只有450px是可见的并且还有650px需要滚动(剩余的px),我试图在剩余的px小于100px时触发警报。
换句话说,在1000px之外,如果用户向下滚动并且剩余的px小于100px,我想触发警报。
我看到我可以使用" .offset()。top"但我不太确定如何。
答案 0 :(得分:2)
var div = document.getElementsByTagName('div')[0];
window.addEventListener("scroll", function() {
if (window.pageYOffset - div.offsetTop > 900) {
alert('Less than 100px of div visible');
}
});

body {
height: 2000px;
}
div {
background-color: lightblue;
height: 1000px;
}

<div></div>
&#13;
window.pageYOffset
是从顶部开始的当前滚动位置div.offsetTop
是div
在顶部两者之间的差异是滚动超出div
顶部的像素数。超过1000px高元素顶部超过900px意味着小于100px。
if
更改为
if (window.pageYOffset - (div.offsetTop + div.scrollHeight) > -100) {
div.scrollHeight
是div
的高度,因此整个上面的表达式代表滚动超出div
的底部的像素数。而-100
超出底部意味着100px留给它。