javascript - 我如何判断 HTML 元素是否正在屏幕上呈现?

标签 javascript html css rendering

我想要一个元素在页面向下滚动到足以使其可见时执行 CSS3 动画,我想知道是否有任何方法可以实现此目的。任何涉及 JavaScript 或 CSS 的东西都可以。我进行了许多 Google 搜索和 Stackoverflow 搜索,但无法准确找到我需要的内容。

最佳答案

根据您布局的复杂性,它可以像查找滚动位置、窗​​口高度以及元素在页面上的位置一样简单。

function scrollEvent() {
  var el = document.getElementsByTagName('a')[0];
  var body = document.getElementsByTagName('body')[0];
  var posY = (window.innerHeight + body.scrollTop) - el.offsetTop;
  var onScreen = (posY > 0 && posY < window.innerHeight) ? true : false;
}

window.onscroll = scrollEvent;

如果您也担心水平定位,请使用相同的技术。

关于javascript - 我如何判断 HTML 元素是否正在屏幕上呈现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25233904/

相关文章:

javascript - 获取元素相对于 Javascript 中一个祖先的位置

javascript - 当第一个 div 宽度较大时,Passy/Masonry 单列

html - 使整个 <li> 成为具有适当 HTML 的链接

JavaScript 变量到管道文本

javascript正则表达式从路径字符串中替换3digitis

javascript - 使用 RxJS 检测事件之间的长间隔

android - 视频背景自动播放无法在移动设备 (Wordpress) 上运行

html - 我如何为使用 *ngFor Angular2 填充的表固定表头(无插件)

html - 菜单表无法正确呈现

javascript click div 仅当它是某个类时才添加边框