前言
对于图表相关的div,当加载echarts时,希望canvas的宽高能随着所在容器自适应调节大小,因为所用容器都是百分比等份布局,所以想使用echarts的API resize方法实现大小的动态调整。
研究历程
1.window.onresize
首先想到的是window有没有类似的监听事件,好通过它来实现,搜了下,果然有window.onresize = function(){xxxx}
// 写法一、
<body onresize="alert('You have changed the size of the window')">
</body>
// 写法二、
<script>
window.onresize = function(){
alert('You have changed the size of the window')
}
</script>
2.ResizeObserver
无意中,发现了这个API,高性能监听元素的大小变化,写法简单,但很遗憾😡 IE 不支持,😔哎~~~
我是从这个网站看到的 MDN,很不错的网站
// 新建监听对象 entries 就是下面 observe() 添加的dom元素
const resizeObserver = new ResizeObserver(entries => {
for (let entry of entries) {
console.log(entry) // 在此处写监听到变化后做的操作
}
});
// 给监听对象上添加要监听的dom元素
resizeObserver.observe(document.querySelector('div'));
兼容性见下图 👇
3.MutationObserver
峰回路转,又让我发现了这个类,先看兼容性,全绿,嗯,还可