@Ostic
Программист - любитель

Почему callback для intersectionObserver запускается сразу?

Здравствуйте.
Пример для обсуждения
Я ожидал, что Блок 3 меняет цвет, когда попадает во вьюпорт, но
1. Почему если я даже не прокручиваю, то callback всё равно срабатывает
2. Если я в options не задаю root, то по умолчанию root=window?
3. Получается, что при пересечении вьюпорта в любом направлении срабатывает callback, те слева направо и справа налево тоже? (disconnect() я специально не вызываю)
  • Вопрос задан
  • 383 просмотра
Пригласить эксперта
Ответы на вопрос 2
@steklovatnik
я сейчас промучался некоторое количество времени, не понимая, почему observer моментально выводит картинки, а не при скролле.
Оказалось, что так как картинки еще не загружены, они "схлопывались" не имея высоты в самом верху страницы, который, естественно, попадал в видимую часть.
После этого они сразу и загружались)))
Надеюсь это сообщение сэкономит кому-нибудь время и нервы/
Ответ написан
Комментировать
hahenty
@hahenty
('•')
Колбэк запускается по нескольким событиям. Например, при загрузке страницы – в этот момент колбэк запускается с аргументом со сведениями о непопадании во вьюпорт.

https://jsfiddle.net/k0m3tzf4/ – здесь добавлен аргумент, можно поизучать его немного, примечателен флаг isIntersecting.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы