登录
首页 >  文章 >  前端

如何使用 JavaScript 代码在页面滚动时实时监测某个特定段落何时与页面可视区域顶部接触?

时间:2024-11-18 14:39:39 475浏览 收藏

目前golang学习网上已经有很多关于文章的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《如何使用 JavaScript 代码在页面滚动时实时监测某个特定段落何时与页面可视区域顶部接触?》,也希望能帮助到大家,如果阅读完后真的对你学习文章有帮助,欢迎动动手指,评论留言并分享~

如何使用 JavaScript 代码在页面滚动时实时监测某个特定段落何时与页面可视区域顶部接触?

监测元素滚动位置的 javascript 代码

如何在滑动页面时检测某个段落何时与页面可视区域顶部接触?

html 代码

<body>
  <div>
    <!-- 一个段落开始 -->
    <div dh="a">a</div>
    <ul h="a">
      <li>...</li>
      ...
    </ul>
    <!-- 一个段落结束 -->
    <div dh="b">b</div>
    <ul h="b">
      <li>...</li>
      ...
    </ul>
    ....
    <div dh="z">z</div>
    <ul h="z">
      <li>...</li>
      ...
    </ul>
  </div>
</body>

javascript 代码

通过 window.scroll 事件侦测元素滚动位置,当目标元素的顶部与页面可视区域顶部接触时触发事件。以下是如何实现的代码:

const paragraphs = document.querySelectorAll('div[dh]');

const observer = new IntersectionObserver((entries) => {
  entries.forEach((entry) => {
    console.log('entry', `${entry.target.getAttribute('dh')}`, entry.boundingClientRect.y);
  });
});

paragraphs.forEach((paragraph) => {
  observer.observe(paragraph);
});

说明

  • intersectionobserver api 用于监视元素与视口之间的交集状态。
  • boundingclientrect 属性提供元素相对于视口的位置。
  • 当元素与视口顶部接触时,entry.boundingclientrect.y 等于 0。对于位于视口上方的元素,它将为负值;对于位于视口下方的元素,它将为正值。
  • 通过比较各个元素的 entry.boundingclientrect.y 值,可以确定哪个元素在滑动时与页面顶部接触。

今天关于《如何使用 JavaScript 代码在页面滚动时实时监测某个特定段落何时与页面可视区域顶部接触?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>