@lui-ui/lui-vue
Version:
This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
27 lines (26 loc) • 594 B
JavaScript
import { ref } from "vue";
export function useElementSize(element) {
const width = ref(0);
const height = ref(0);
let observer = null;
function handleResize(entries) {
width.value = entries[0].contentRect.width;
height.value = entries[0].contentRect.height;
}
function observeElement() {
observer = new ResizeObserver(handleResize);
observer.observe(element.value);
}
function unobserveElement() {
if (observer) {
observer.disconnect();
observer = null;
}
}
return {
width,
height,
observeElement,
unobserveElement
};
}