useElementVisibility
Tracks the visibility of an element within the viewport.
Demo
Usage
<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>
<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>
Component
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>
<UseElementVisibility v-slot="{ isVisible }">
Is Visible: {{ isVisible }}
</UseElementVisibility>
Type Declarations
export interface VisibilityScrollTargetOptions extends ConfigurableWindow {
scrollTarget?: Ref<Element | null | undefined>
}
/**
* Tracks the visibility of an element within the viewport.
*
* @see https://vueuse.org/useElementVisibility
* @param element
* @param options
*/
export declare function useElementVisibility(
element: Ref<Element | null | undefined>,
{ window, scrollTarget }?: VisibilityScrollTargetOptions
): Ref<boolean>
export interface VisibilityScrollTargetOptions extends ConfigurableWindow {
scrollTarget?: Ref<Element | null | undefined>
}
/**
* Tracks the visibility of an element within the viewport.
*
* @see https://vueuse.org/useElementVisibility
* @param element
* @param options
*/
export declare function useElementVisibility(
element: Ref<Element | null | undefined>,
{ window, scrollTarget }?: VisibilityScrollTargetOptions
): Ref<boolean>
Source
Contributors
Anthony Fu
Scott Bedard
wheat
Amr Bashir
Ary Raditya
Chung, Lian
Carlos Yanes
Alex Kozack