В настоящее время я пытаюсь реализовать отложенную загрузку с помощью IntersectionObserver в моем приложении angularjs.
Но когда я прокручиваю вверх и вниз, он не всегда вызывает функцию обратного вызова наблюдателя.
Моя директива выглядит так:
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
);
});
}
}
};
});
См. эту ручку для демонстрации.