JavaScript IntersectionObserver.rootMargin — запас навколо області


Властивість rootMargin розширює або звужує область спостереження — як margin у CSS.

автор: NagarD

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

Це те, завдяки чому ліниве завантаження не помітне. З rootMargin: '200px' спостерігач спрацює за 200 пікселів до того, як елемент з'явиться на екрані — і картинка встигне завантажитись, доки користувач до неї догортає.

Додатні значення розширюють область, від'ємні звужують — так можна спрацьовувати, лише коли елемент опинився в центрі екрана.

Синтаксис такий самий, як у margin: '200px 0', '10% 0px'.

автор: NagarD

Нотатка

Значення мають бути в пікселях або відсотках — інші одиниці кидають помилку. І порожні одиниці не можна: '200' не спрацює, треба '200px'.

автор: NagarD

Переглядачі

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

Приклади

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

Завантажити картинку за 300px до появи на екрані.

HTML

<div style="height: 400px"></div>
<img id="lazy" src="/img/logo.svg" width="100" alt="Лінива картинка">

JS

function load(entries) {
    entries.forEach(entry => console.log('Елемент видно:', entry.isIntersecting));
}

const observer = new IntersectionObserver(load, {
    // спрацює ЗАЗДАЛЕГІДЬ — користувач не помітить завантаження
    rootMargin: '300px 0px',
});

observer.observe(document.getElementById('lazy'));

// від'ємне значення — навпаки, звужує область:
// спрацює лише коли елемент у центрі екрана
const centered = new IntersectionObserver(entries => {}, {
    rootMargin: '-40% 0px',
});
автор: NagarD

Коментарі

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

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

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

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

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

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

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

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

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

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

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