IntersectionObserver

1
2
3
4
5
6
7
8
/**
* @param {entries} Array 交叉状态数组
* @param {observer} Object 实例对象
*/
const observer = new IntersectionObserver(function(entries, observer){
console.log(entries)
console.log(observer)
}, options?)

options:

1
2
3
4
5
6
{
root: elementNode, //监听元素的祖先元素Element对象,其边界盒将被视作视口
rootMargin: "0px 0px 0px 0px", //计算交叉值时,边框相距rootMargin值也算交叉
threshold: 0.0 // 0~1 0表示碰到就算交叉,1表示全部进入才算交叉

}

实例方法

1. observe

observer.observe(elementNode)

2. takeRecords

observer.takeRecords()

3. disconnect

observer.disconnect() 取消监听

4. unobserve

observer.unobserve(elementNode) 取消对target的监听