IntersectionObserverEntry: свойство intersectionRatio
Базовая Широко поддерживается
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с марта 2019 года.
Только для чтения свойство IntersectionObserverEntry интерфейса intersectionRatio показывает, какая часть целевого элемента в настоящее время видна в области пересечения с контейнером, как значение от 0,0 до 1,0.
Значение
Число от 0,0 до 1,0, которое указывает, какая часть целевого элемента фактически видна в прямоугольнике пересечения с контейнером. Точнее, это отношение площади прямоугольника пересечения (intersectionRect) к площади прямоугольника границ целевого элемента (boundingClientRect).
Если площадь прямоугольника границ целевого элемента равна нулю, возвращаемое значение равно 1, если isIntersecting имеет значение true, или 0, если нет.
Примеры
В этом простом примере обратный вызов наблюдения за пересечением устанавливает opacity каждого целевого элемента в отношение пересечения этого элемента с контейнером.
function intersectionCallback(entries) {
entries.forEach((entry) => {
entry.target.style.opacity = entry.intersectionRatio;
});
}
Чтобы увидеть более конкретный пример, ознакомьтесь со статьёй Обработка изменений пересечения.
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
intersectionRatio |
51 | 15 | 55 | 38 | 12.1 | 51 | 55 | 41 | 12.2 | 5.0 | 51 |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry/intersectionRatio