<template>
<div class="newsAnchor" ref="newsListRef" id="newsList"></div>
</template>
<script lang="ts" setup>
import { ref, onMounted,} from 'vue';
const newsListRef = ref(null);
onMounted(() => {
const observer = new IntersectionObserver(
([data]) => {
// console.log('newsRef', data.isIntersecting); // true为dom元素到达可视区域,false为没有到达
if (data.isIntersecting) {
console.log(data.target.id)
switch (data.target.id) {
case 'newsList':
activeNav.value = '0';
break;
}
}
},
{
threshold: 0.01,
}
);
//tarage.value是监听的dom元素
observer.observe(newsListRef.value);
});
</script>
监听元素是否出现在可视区域
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- IntersectionObserver 监听元素是否出现或离开可视区域, 实现图片懒加载 Intersectio...
- 这个方法的主要应用是懒加载(lazyload),无限加载(infinte scroll) 基于浏览器窗口的判断 ....