Добрый день.
Установил наблюдение за контейнером и установил отслеживание за двумя точками: более 0.2 - первая и более 0.7 - вторая. Первая точка(0.2) всегда срабатывает с первого раза, вторая(0.7) - не всегда(покрутишь туда-сюда и срабатывает).
Я не понимаю логику. Иной раз прокрутишь быстро и сработают обе точки, в другой раз крутишь медленно и вторая не отрабатывает с первого раза. В чем может быть проблема?
Скрипка на codepen
if (document.querySelector(".advantages")) {
let advantages = document.querySelector(".advantages");
const options = {threshold: [0.2, 0.7],}
let callback = function(entries, observer) {
if (entries[0].intersectionRatio > 0.2) {
document.querySelector(".advantages__notice").classList.remove("advantages__notice--hidden");
}
if (entries[0].intersectionRatio > 0.7) {
let target = entries[0].target;
let children = Array.from(target.querySelectorAll(".advantages__item--hidden"));
children.forEach(item => {
item.style.transitionDelay = `${item.dataset.delay}`;
item.classList.remove("advantages__item--hidden");
});
observer.unobserve(advantages);
}
}
observer = new IntersectionObserver(callback, options);
observer.observe(advantages);
}