javascript - 我可以使用 IntersectionObserver 来检测元素相对于窗口底部的位置吗?
问题描述
现在,当屏幕底部的元素变得可见时,我管理图像的延迟加载,如下所示:
let options = { rootMargin: '0px', threshold: 0.1 }
let callback = (entries, observer) => {
console.log(entries[0]);
var bar = entries[0];
if (entries.filter(entry => entry.isIntersecting).length) {
// load images
}
};
let observer = new IntersectionObserver(callback, options);
observer.observe(document.querySelector('#bottombar'))
然而,这意味着只有在到达底部时才会加载新图像,这会给交互带来打嗝的感觉。
是否可以在 - 例如 - 元素位于屏幕底部下方的全屏高度(或更小)时触发事件?我想这可以通过滚动事件来完成 - 但 IntersectionObserver 看起来更干净(并且触发频率更低)。
解决方案
是的你可以。
您可以创建IntersectionObserver
并提供一个自定义root
属性,该属性对应于大于视口的元素(例如height: 200vh
)。
另外:如果你提供了一个threshold
你0
不应该有你描述的打嗝。
您可以做的另一件事是设置 arootMargin
以100%
指示边距是一个全新的视口。
推荐阅读
- javascript - 如何编写 Javascipt 代码为任何字符串的输入创建小于或等于 20 字节的哈希字符串?
- python - 在 python 3 中使用 xor 计算校验和
- java - Hibernate级联删除依赖实体(ManyToOne OneToMany)
- python-3.x - 如何将列表分成嵌套列表,列表中所有元素的平均值?
- amazon-web-services - AWS RDS pg_transport 未能下载文件数据
- react-native - 在本机反应上获取错误网络但在邮递员上工作
- extjs - ExtJS7:锚标记不遵守 ext 路由
- r - 将序数值分配给R中的数值向量
- python - 在简单数据上使用边界和初始参数的 Scipy curve_fit 混淆
- javascript - 在正则表达式 JavaScript 中提取值