21 lines
475 B
JavaScript
21 lines
475 B
JavaScript
|
// 引入防抖函数
|
||
|
import _debounce from 'lodash/debounce'
|
||
|
/**
|
||
|
* @description: 监听元素尺寸变化
|
||
|
* @param {*} el 元素dom
|
||
|
* @param {*} cb resize变化时执行的方法
|
||
|
* @param {*} wait 防抖间隔
|
||
|
* @return {*}
|
||
|
*/
|
||
|
export default (el, cb, wait = 200) => {
|
||
|
const resizeObserver = new ResizeObserver(_debounce(cb, wait))
|
||
|
|
||
|
resizeObserver.observe(el)
|
||
|
|
||
|
const destroy = () => {
|
||
|
resizeObserver.disconnect(el)
|
||
|
}
|
||
|
|
||
|
return { destroy, resizeObserver }
|
||
|
}
|