
监测元素滚动位置的 javascript 代码
如何在滑动页面时检测某个段落何时与页面可视区域顶部接触?
html 代码
a
- ...
...b....
- ...
...z
- ...
...
javascript 代码
立即学习“Java免费学习笔记(深入)”;
通过 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 值,可以确定哪个元素在滑动时与页面顶部接触。










