javascript - 交叉口观察器不适用于通过 JS 添加的元素

标签 javascript intersection-observer

我制作了一个汽车经销商页面。我将有关汽车的数据存储在对象数组中,然后循环遍历它以将数据插入到 HTML 文件中以显示在页面上。效果很好。

当我尝试使用相交观察器添加延迟加载函数时,问题就出现了。这些内容已正确放入页面,但交叉点观察者看不到图像,也不会加载它们。

这里是 codepen https://codepen.io/russiandobby/pen/xxxJvxv?editors=0010 的链接,如果将 data-src 更改为 src 它将起作用。

我怎样才能让它工作,这样我就可以进行延迟加载。

 <img data-src="${car.img}" alt="jag1" class="card-img-top car-img popup-img">

最佳答案

你的主要代码没问题。

唯一的问题是它在错误的时间运行。当 DOM 生成代码在 DOMContentLoaded 上运行时,您尝试立即附加观察者,因此 DOM 中还没有图像。

您还需要将观察者代码放入 DOMContentLoaded 中,或者创建一个方法并从那里调用它。

更新代码:https://codepen.io/gpetrioli/pen/XWWBvQm?editors=0010

(您的 codepen 也会失败,因为您使用 jquery 插件而不包含 jQuery 库)

关于javascript - 交叉口观察器不适用于通过 JS 添加的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58813478/

相关文章:

javascript - 访问顶层函数的参数

javascript - 当 start 未定义时,数组的 lastIndexOf 返回 -1

Javascript moment.js - 西类牙语日期和时间

javascript - 交叉口观察者动画和悬停效果不能一起使用吗?

javascript - 如果完全在 View 中(大于视口(viewport)),intersectionObserver 获得比率 1

javascript - 如何使用偏移路径 CSS 属性从其原始位置偏移 SVG 路径

javascript - 使用 jQuery 的 MVC 形式的 HTTP 404

javascript - 如何制作滑动图片/框架?

javascript - 基于“相交观察器”的背景DIV淡入和淡出

javascript - 使用查询选择器 Alll 选择多个元素 - JavaScript