Skip to content
# t-visibility-sensor

VisibilitySensor 可见性传感器

t-visibility-sensor 组件介绍 ​

t-visibility-sensor 是用于监听元素是否在可视区域内的组件,当元素进入或离开视口时会触发相应事件,适用于懒加载、埋点统计、动画触发等场景。

t-visibility-sensor 平台兼容 ​

HarmonyH5AndroidiOS小程序UTS
✅✅✅✅✅✅

t-visibility-sensor 基础用法 ​

基础用法参考 demo/visibility-sensor/visibility-sensor.uvue。

vue
<template>
	<t-page class="p-15 b"
			@scroll="onscroll">
		<tui-theme-switch></tui-theme-switch>
		<t-card title="VisibilitySensor"
				class="mb-15"
				sub-title="监听元素是否在可视区"></t-card>
		<t-button type="primary"
				  class="df db-75 dlr-15 z-1">{{showText}}</t-button>
		<t-row class="h-150 r-10 mb-15"></t-row>
		<t-visibility-sensor @change="vischange"
							 mark="图片1"
							 :scrollTop="scrollTop">
			<t-col class="w-100%">
				<t-image class="h-150 r-10 mb-15 w-100%"
						 src='/static/image/D2.jpg'></t-image>
			</t-col>
		</t-visibility-sensor>
		<t-row class="h-150 r-10 mb-15"></t-row>
		<t-row class="h-400 r-10 mb-15"></t-row>
		<t-visibility-sensor @change="vischange"
							 mark="图片2"
							 :scrollTop="scrollTop">
			<t-col class="w-100%">
				<t-image class="h-150 r-10 mb-15 w-100%"
						 src='/static/image/D2.jpg'></t-image>
			</t-col>
		</t-visibility-sensor>
		<t-row class="h-150 r-10 mb-15"></t-row>
		<t-row class="h-150 r-10 mb-15"></t-row>
		<t-row class="h-150 r-10 mb-15"></t-row>
	</t-page>
</template>
<script setup>
	import { ref } from 'vue'
	const scrollTop = ref(0)
	const showText = ref('')
	function onscroll(e : ScrollEvent) {
		console.log(e.detail.scrollTop)
		scrollTop.value = e.detail.scrollTop
	}
	const vischange = (e : UTSJSONObject) => {
		const state = e.getBoolean('state') ?? false
		const mark = e.getString('mark')!
		showText.value = mark + (state ? '可见' : '不可见')
	}
</script>

t-visibility-sensor Props ​

属性名说明类型默认值
scrollTop滚动组件的 scrollTop 值number0
mark组件标记,用于区分不同元素string''
path点击组件后跳转的页面路径string''
hover是否启用点击效果booleanfalse
type组件主题类型string''
disabled是否禁用booleanfalse
effect组件显示主题string'plain'
size组件尺寸string''

t-visibility-sensor Events ​

事件名说明回调参数
visible元素可见性变化时触发boolean(是否可见)
change元素状态发生变化时触发{ ins: instance, state: boolean, mark: string }
transitionend动画结束时触发event

插槽 ​

插槽名说明
default需要监听可见性的内容