【发布时间】:2018-11-08 18:36:33
【问题描述】:
我对@987654321@ 很陌生,我一直在试验这段代码:
let target = document.querySelector('.lazy-load');
let options = {
root: null,
rootMargin: '0px',
threshold: 0
}
let observer = new IntersectionObserver(callback, options);
observer.observe(target);
function callback() {
console.log('observer triggered.');
}
这似乎可以正常工作,并且每当.lazy-load 元素进入视口时都会调用callback(),但callback() 也会在页面初始加载时触发一次,这会触发`console.log('observer触发.');
页面加载时是否有理由触发此回调?还是我的实现方式有误?
编辑:将代码更改为以下代码仍会在页面加载时触发回调。
let target = document.querySelector('.lazy-load');
let options = {
root: null,
rootMargin: '0px',
threshold: 0
}
let callback = function(entries, observer) {
entries.forEach(entry => {
console.log('observer triggered.');
});
};
let observer = new IntersectionObserver(callback, options);
observer.observe(target);
【问题讨论】:
-
我有类似的问题,但阈值为 1.. 所以这里的答案不适用
标签: javascript lazy-loading intersection-observer