JavaScript API ResizeObserver使用示例

目录

写在前面

API介绍

浏览器兼容性

用法

unobserve()

disconnect()

写在前面

今天在看同事代码的时候看见这个API,出于好奇就去了解了一下。

这是一个实验中的功能 此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。——来自MDN的提醒

API介绍

众所周知window.resize事件能帮我们监听窗口大小的变化。但是reize事件会在一秒内触发将近60次,所以很容易在改变窗口大小时导致性能问题。

换句话说,window.resize事件通常是浪费的,因为它会监听每个元素的大小变化(只有window对象才有resize事件),而不是具体到某个元素的变化。

如果我们只想监听某个元素的变化的话,这种操作就很浪费性能了。  

而ResizeObserver API就可以帮助我们:监听一个DOM节点的变化,这种变化包括但不仅限于:

某个节点的出现和隐藏

某个节点的大小变化

浏览器兼容性

这是JavaScript一个极其新的API,所以在兼容方面还不是很好。

顺便给大家安利一个工具——Can I use,用于查询API在各个浏览器的兼容性

用法

ResizeObserver是个构造函数。在使用new关键字调用构造函数,返回实例对象时,需要传入一个回调函数,这个回调用于监听实例对象某个DOM节点的变化

// HTML <div class="wrapper" ref="wrapper"></div> // css .wrapper { height: 500px; background-color: blueviolet; } // js mounted() { const resizeObserver = new ResizeObserver(entries => { console.log("我的resize变化啦"); // console.log(entries); }); }

效果展示:

另外我们可以给回调函数添加一个参数,用来获取到该元素的一些信息

然后,实例对象myObserver方法除了有observe方法之外,还有disconnect方法和unobserve方法。

unobserve()

取消监听某个DOM节点。比如说想在四秒后取消监听

setTimeout(() => { resizeObserver.unobserve(this.$refs.wrapper); }, 4000); disconnect()

取消对所有节点的监听。比如说想在四秒后取消监听所有节点

setTimeout(() => { resizeObserver.disconnect(this.$refs.wrapper); }, 4000);

取消监听效果展示:

参考

https://www.jb51.net/article/255898.htm

https://developer.mozilla.org/zh-CN/docs/Web/API/ResizeObserver

以上就是JavaScript API ResizeObserver使用示例的详细内容,更多关于JavaScript API ResizeObserver的资料请关注易知道(ezd.cc)其它相关文章!

推荐阅读

    Javascript中 toFixed四舍六入方法

    Javascript中 toFixed四舍六入方法,浮点,手动,银行家,进,javascript中toFixed使用的是银行家舍入规则。银行家舍入:所谓银行家舍入法,其实

    javascript怎么隐藏元素值

    javascript怎么隐藏元素值,隐藏,元素,设置,显示,位置,属性,javascript隐藏元素值的方法:1、设置元素style属性中的display,语句如“t.style.displ

    javascript对象怎么转换成字符串

    javascript对象怎么转换成字符串,字符串,参数,对象,序列化,属性,数组,在javascript中可以使用“JSON.stringify()”方法将对象转换成字符串,其语

    javascript怎么将字母转为小写

    javascript怎么将字母转为小写,方法,字符串,函数,语法,主机,语言,javascript字母转为小写的方法:1、使用toLowerCase()函数,语法“string.toLower

    javascript怎么实现二维码

    javascript怎么实现二维码,二维码,二维码生成,下载,插件,扫描二维码,操作,javascript实现二维码的方法:1、下载qrcodejs插件;2、使用qrcode实现二

    启用wapi是什么意思

    启用wapi是什么意思,鉴别,用户,安全机制,开启,网络,客户端,启用wapi是手机连接无线局域网时的一项可选功能选项,开启它可以提高使用无线网络的安

    javascript如何获取字符串长度

    javascript如何获取字符串长度,字符,获取,属性,字符串长度,字符串,输出,javascript获取字符串长度的方法:1、使用length属性按字符来获取字符串