监听元素是否出现在可视区域

<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>


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容