Category | Elements |
---|---|
Export Size | 626 B |
Last Changed | 2 weeks ago |
Tracks the visibility of an element within the viewport.
<template> <div ref="target"> <h1>Hello world</h1> </div> </template> <script> import { ref } from 'vue' import { useElementVisibility } from '@vueuse/core' export default { setup() { const target = ref(null) const targetIsVisible = useElementVisibility(target) return { target, targetIsVisible, } } } </script>
This function also provides a renderless component version via the
@vueuse/components
package. Learn more about the usage.
<UseElementVisibility v-slot="{ isVisible }"> Is Visible: {{ isVisible }} </UseElementVisibility>
This function also provides a directive version via the
@vueuse/components
package. Learn more about the usage.
<script setup lang="ts"> import { ref } from 'vue' import { vElementVisibility } from '@vueuse/components' const target = ref(null) const isVisible = ref(false) function onElementVisibility(state) { isVisible.value = state } </script> <template> <div v-element-visibility="onElementVisibility"> {{ isVisible ? 'inside' : 'outside' }} </div> <!-- with options --> <div ref="target"> <div v-element-visibility="[onElementVisibility, { scrollTarget: target }]"> {{ isVisible ? 'inside' : 'outside' }} </div> </div> </template>
export interface UseElementVisibilityOptions extends ConfigurableWindow { scrollTarget?: MaybeRefOrGetter<HTMLElement | undefined | null> } /** * Tracks the visibility of an element within the viewport. * * @see https://vueuse.org/useElementVisibility * @param element * @param options */ export declare function useElementVisibility( element: MaybeComputedElementRef, { window, scrollTarget }?: UseElementVisibilityOptions ): Ref<boolean>
© 2019-present Anthony Fu
Licensed under the MIT License.
https://vueuse.org/core/useElementVisibility/