博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IntersectionObserver
阅读量:6402 次
发布时间:2019-06-23

本文共 1982 字,大约阅读时间需要 6 分钟。

最近看到 IntersectionObserver 这个新增的API,不多说,贴上用法:

var io = new IntersectionObserver(             entries => {                console.log(entries[0].time);                // Timestamp when the change occurred                // 当可视状态变化时,状态发送改变的时间戳                // 对比时间为,实例化的时间,                // 比如,值为1000时,表示在IntersectionObserver实例化的1秒钟之后,触发该元素的可视性变化                console.log(entries[0].rootBounds);                // Unclipped area of root                // 根元素的矩形区域信息,即为getBoundingClientRect方法返回的值                console.log(entries[0].boundingClientRect);                // target.boundingClientRect()                // 目标元素的矩形区域的信息                console.log(entries[0].intersectionRect);                // boundingClientRect, clipped by its containing block ancestors,                // and intersected with rootBounds                // 目标元素与视口(或根元素)的交叉区域的信息                console.log(entries[0].intersectionRatio);                // Ratio of intersectionRect area to boundingClientRect area                // 目标元素的可见比例,即intersectionRect占boundingClientRect的比例,                // 完全可见时为1,完全不可见时小于等于0                console.log(entries[0].target);                // the Element target                // 被观察的目标元素,是一个 DOM 节点对象                // 当前可视区域正在变化的元素            },            {                threshold: [0, 0.25, 0.5, 0.75, 1],                // root                // DOM元素,但默认值为null,也就是视口区域                // 表示监听的可视区域为整个视口,也就是浏览器的可视区域                // 如果设置了DOM元素,那么视口就变为该元素(即,就算元素在屏幕的可视区域,但是不在该DOM元素的可视区域,仍然不会触发可视性变化)                // rootMargin                // 类似于css的margin属性,可以设置四个属性。                // 该属性默认值为0px 0px 0px 0px,如果设置之后,会影响触发回调的时间            }        );        // 开始观测某个元素        io.observe(document.querySelector('.canvas-unit'));                 // 停止关注某个元素        // io.unobserve(element);                 // 禁用整个 IntersectionObserver        // io.disconnect();

 

兼容性确实也不算很好,但是常用的webkit内核算是覆盖全了:

 

转载于:https://www.cnblogs.com/coderhero/p/10725659.html

你可能感兴趣的文章
ThinkPHP项目笔记之RBAC(权限)中篇
查看>>
经典SQL语句大全
查看>>
百度地图 Android SDK - 检索功能使用的简单演示样例
查看>>
nginx+apache+php+mysql服务器集群搭建
查看>>
ASP.NET Core中的依赖注入(4): 构造函数的选择与服务生命周期管理
查看>>
ABP源码分析三十九:ABP.Hangfire
查看>>
Why is applicationhost.config still being added to source control even thought it's in gitignore
查看>>
微信网页授权java实现
查看>>
用StackExchange.Redis客户端连接阿里云Redis服务遇到的问题
查看>>
Chapter 1 First Sight——15
查看>>
约束篇
查看>>
leetCode 78.Subsets (子集) 解题思路和方法
查看>>
机器学习入门之四:机器学习的范围(转载)
查看>>
即将成为传奇的微软
查看>>
Android项目实战--手机卫士18--读取用户的短信内容以及短信备份
查看>>
nanosleep纳秒级延迟
查看>>
[C#] 我的log4net使用手册
查看>>
FineUI官方论坛出现空白页的解决办法!
查看>>
进程和线程之间的通信
查看>>
Android MIFARE NFCA源码解析
查看>>