javascript - js测量可见高度与div总高度的差值

标签 javascript jquery

js中如何测量div的总高度和屏幕可见高度?

例如,如果div的总高度为1000px,当前只有450px在屏幕上可见。

因为只有 450px 是可见的,还有 650px 可以滚动(剩余 px),所以我试图在剩余 px 小于 100px 时触发警报。

换句话说,在 1000px 之外,如果用户向下滚动并且剩余的 px 小于 100px,我想触发警报。

我看到我可以使用类似“.offset().top”的东西,但我不太确定如何使用。

最佳答案

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>

  • window.pageYOffset 是从顶部开始的当前滚动位置,
  • div.offsetTopdiv从顶部开始的位置

两者之间的区别在于滚动到 div 顶部之外的像素数。超过 1000 像素高的元素顶部超过 900 像素意味着剩下不到 100 像素。


您还可以将 if 更改为

if (window.pageYOffset - (div.offsetTop + div.scrollHeight) > -100) {

div.scrollHeightdiv 的高度,所以上面的整个表达式代表滚动到 bottom 之外的像素数>分区-100 超出底部意味着还剩 100px。

关于javascript - js测量可见高度与div总高度的差值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35807469/

相关文章:

javascript - 字符串插值,如 scala.js 的 java.text.MessageFormat

javascript - 根据下拉菜单是否存在,在 bootstrap4 下拉菜单中显示或隐藏插入符号图标

javascript - 如何展开和折叠多个 div,而不使用 jQuery 重复相同的代码

javascript - 使用 Javascript 解析的 HTML5 嵌套数据-* 属性不返回嵌套对象

javascript - jquery 对话框 - 希望弹出窗口内的单选按钮能够输入值

jquery - 如何将 REST 调用 JSON 响应附加到 jQuery 数据表?

javascript - 使用正则表达式从句子中解析主题标签

javascript - 来自父窗口大小的 iframe 媒体查询

javascript - 检测是否安装了 Safari 扩展

javascript - 禁用 RGraph 属性的渲染