这是
实验性技术
检查
浏览器兼容性表格
要小心谨慎在生产中使用这之前。
IntersectionObserverEntry
interface's read-only
intersectionRatio
property tells you how much of the target element is currently visible within the root's intersection ratio, as a value between 0.0 and 1.0.
var intersectionRatio = IntersectionObserverEntry.intersectionRatio;
A number between 0.0 and 1.0 which indicates how much of the target element is actually visible within the root's intersection rectangle. More precisely, this value is the ratio of the area of the intersection rectangle (
intersectionRect
) to the area of the target's bounds rectangle (
boundingClientRect
).
If the area of the target's bounds rectangle is zero, the returned value is 1 if
isIntersecting
is
true
or 0 if not.
In this simple example, an intersection callback sets each target element's
opacity
to the intersection ratio of that element with the root.
function intersectionCallback(entries) {
entries.forEach(function(entry) {
entry.target.style.opacity = entry.intersectionRatio;
});
}
To see a more concrete example, take a look at Handling intersection changes in Timing element visibility with the Intersection Observer API .
| 规范 | 状态 | 注释 |
|---|---|---|
|
Intersection Observer
The definition of 'IntersectionObserverEntry.intersectionratio' in that specification. |
工作草案 | 初始定义 |
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
更新 GitHub 上的兼容性数据| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
intersectionRatio
|
Chrome 51 | Edge 15 |
Firefox
55
|
IE No | Opera Yes | Safari ? | WebView Android 51 | Chrome Android 51 | Firefox Android ? | Opera Android ? | Safari iOS ? | Samsung Internet Android 5.0 |
完整支持
不支持
兼容性未知
实验。期望将来行为有所改变。
用户必须明确启用此特征。
IntersectionObserverEntry
boundingClientRect
intersectionRatio
intersectionRect
isIntersecting
rootBounds
target
time