vue3 VueUse useElementVisibility 来监听某一个元素或者div是否在当前视口viewport中可见。

1、先上一个图:

2、安装@vueuse/core

pnpm add @vueuse/core

3、新建一个组件:

<script setup lang="ts">
import { ref, watch } from "vue";
import { useElementVisibility } from "@vueuse/core";

const target = ref(null);
const targetIsVisible = useElementVisibility(target);
let emit = defineEmits(["showVisible"]);

watch(targetIsVisible, (newValue) => {
  if (newValue) {
    emit("showVisible",newValue);
  } else {
    emit("showVisible",newValue);
  }
});
</script>

<template>
  <div ref="target">
    <h1>Hello world</h1>
  </div>
</template>

这里面是利用@vueuse/core提供的useElementVisibility,来监听ref="target"的可见状态。然后我们用watch去监听这个属性的变化,然后汇报给App.vue。

4、引用刚建的组件到App.vue

这样我们就可以成功的去看这个div是不是在viewport可见范围了。

官网:

useElementVisibility | VueUse

相关推荐
liuyang___2 分钟前
vue管理布局左侧菜单栏NavMenu
前端·javascript·vue.js
destinying1 小时前
Vue 项目“瘦身”神器:自动清理未引用代码的终极方案
前端·javascript·vue.js
pany2 小时前
📱 MobVue 致力成为你的移动端 H5 首选
前端·javascript·vue.js
战场小包2 小时前
初探 Vite 秒级预构建实现
前端·vue.js·vite
岁岁岁平安2 小时前
Vue3实战学习(IDEA中打开、启动与搭建Vue3工程极简脚手架教程(2025超详细教程)、Windows系统命令行启动Vue3工程)(2)
javascript·vue.js·vue·idea·vue3项目脚手架
雪碧聊技术3 小时前
如何在el-input搜索框组件的最后面,添加图标按钮?
前端·javascript·vue.js·element-plus组件库·el-input搜索框
工业互联网专业3 小时前
基于SpringBoot+Vue的工商局商家管理系统
vue.js·spring boot·毕业设计·源码·课程设计·工商局商家管理系统
前端双越老师3 小时前
【万字总结】2025 前端+大前端+全栈 知识体系(下)
vue.js·react.js·node.js
江小年3 小时前
Vue3、vue学习笔记
前端·javascript·vue.js