Intersection Observer 监听器,监控盒子在视视口/其祖先元素出现的交叉信息
let ob = new IntersectionObserver((changes)=>{},{})
IntersectionObserver(回调函数,配置对象),回调函数有一个参数changes是一个数组,数组里面的每一项是一个IntersectionObserverEntry监听对象:
- isIntersecting 监听对象是否出现在监听范围内
- boundingClientRect 其提供了元素的大小及其相对于监听范围的位置
- target 被监听的元素
- intersectionRatio 监听元素的可见比例
配置对象:
- threshold 决定交叉比列达到多少时触发回调函数,默认为[0],可以设置多个值如:[0,0.1,0.5,1]
- root 将元素做为监听的范围
//开始监听
ob.observe()
//停止监听
ob.unobserve()
//关闭监听器
ob.disconnect()
//其中关闭监听器是停止监听所有对象,然后释放监听器,停止监听只是停止监听某一对象
ajax
步骤:
- 创建一个XMLHTTPRequest核心对象
let xhr = new XMLHTTPRequest
- 建立连接 open(链接的方式,路径,是否同步默认false同步)
xhr.open('get','',false)
- 注册监听
xhr.onreadystatechange = function () {
// readyState 状态值
// status 状态码
if (xhr.readyState === 4 && xhr.status === 200){
console.log(xhr.response);
}
}
- 发送数据
xhr.send()
json字符串和json转换
JSON.parse()
JSON.stringify()
解构赋值
-
左右格式必须一样
-
没有的结构解构出来是undefined,但是可以通过等号赋值默认值