xiaoju-survey/web/src/management/hooks/useResizeObserver.js

21 lines
485 B
JavaScript
Raw Normal View History

2024-06-21 08:33:20 +00:00
// 引入防抖函数
import { debounce as _debounce } from 'lodash-es'
2024-06-21 08:33:20 +00:00
/**
* @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 }
}