UNPKG

@stackoverfloweth/vue-compositions

Version:

A collection of reusable vue compositions.

22 lines 880 B
import { computed, onMounted, ref } from 'vue'; import { useIntersectionObserver } from '../useIntersectionObserver'; export function useVisibilityObserver(element, options = {}) { const visible = ref(false); const optionsRef = ref(options); const elementRef = ref(element); const disconnectWhenVisible = computed(() => optionsRef.value.disconnectWhenVisible ?? false); function intersect(entries) { entries.forEach(entry => { visible.value = entry.isIntersecting; if (disconnectWhenVisible.value && entry.isIntersecting) { disconnect(); } }); } const { observe, disconnect } = useIntersectionObserver(intersect, optionsRef); onMounted(() => { observe(elementRef); }); return { elementRef, visible, disconnect }; } //# sourceMappingURL=useVisibilityObserver.js.map