
监测某个元素滚动位置的 javascript 代码
问题:
如何编写一个 javascript 代码来检测元素滚动位置,并在该元素的顶部与页面可视区域顶部接触时触发事件?
代码实现:
立即学习“Java免费学习笔记(深入)”;
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);});
逻辑说明:
检测所有具有 dh 属性的元素:此代码获取页面中所有具有 dh 属性的元素,这些元素代表我们想要检测滚动位置的不同段落。创建 intersectionobserver 实例:这是一个 web api,允许我们监听元素与视口的交互。监听元素滚动:intersectionobserver 实例通过观察每个段落并监视其与视口的关系。当段落顶部与视口顶部接触时,它触发一个回调函数。记录当前段落:回调函数将记录当前段落的 dh 属性和相对于视口的 y 坐标,以确定触顶部的是哪个段落。
注意:
如果段落的 y 坐标对于视口顶部都是正数,则取最小的 y 坐标。如果段落的 y 坐标对于视口顶部都是负数,则取最大的 y 坐标。如果段落的 y 坐标同时为正数和负数,则取负数的最大值。
以上就是如何使用 JavaScript 检测元素滚动位置并触发事件?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1496967.html
微信扫一扫
支付宝扫一扫