JavaScript IntersectionObserver.observe() — почати стежити за елементом


Метод observe() починає стежити за елементом: повідомляти, коли той з'являється в полі зору або зникає.

автор: NagarD

Загальний опис

Одна деталь, яка спершу дивує: обробник спрацьовує одразу після виклику, ще до будь-якої прокрутки — щоб повідомити поточний стан. Тобто на елемент, який уже видно, ти отримаєш isIntersecting: true негайно.

Це зручно (не треба окремо перевіряти початковий стан), але про це варто знати: код усередині обробника виконається раніше, ніж очікуєш.

Один спостерігач може стежити за багатьма елементами — створювати окремий на кожну картинку не треба.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
observe 51+ 55+ 12.1+ 38+ 15+ -
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
observe 51+ yes yes 12.2+

Приклади

+ запропонувати свій приклад у пісочниці

Один спостерігач на всі зображення.

HTML

<img data-src="/img/logo.svg" alt="">
<img data-src="/img/logo.svg" alt="">

JS

const observer = new IntersectionObserver(entries => {
    for (const entry of entries) {
        if (entry.isIntersecting) {
            entry.target.src = entry.target.dataset.src;
            observer.unobserve(entry.target);
        }
    }
});

// один спостерігач — багато елементів
document.querySelectorAll('img[data-src]').forEach(img => {
    observer.observe(img);
});

// обробник спрацює ОДРАЗУ, з поточним станом
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід