我目前正在尝试在我的 angularjs 应用程序中使用 IntersectionObserver 实现延迟加载。
但是当我上下滚动时,它并不总是调用观察者的回调函数。
我的指令如下所示:
var app = angular.module("test", []);
app.directive("inViewport", function() {
return {
restrict: "A",
link: function(scope, element, attrs) {
const observer = new IntersectionObserver(callback);
const img = angular.element(element)[0];
observer.observe(img);
function callback(changes) {
changes.forEach(change => {
change.target.classList.toggle(
"visible",
change.intersectionRatio > 0
);
});
}
}
};
});
请参阅这支笔进行演示。