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

相关推荐
Hoey1 小时前
虚拟 DOM 和 DIFF 算法
前端·vue.js
小新1101 小时前
vue实战项目 计算器
前端·javascript·vue.js
神仙别闹1 小时前
VUE框架 + Element UI + Node 模拟打印机的 Web 即时打印
前端·vue.js·ui
如果超人不会飞2 小时前
TinyVue图标使用完全指南
vue.js
暗冰ཏོ2 小时前
ECharts 前端图表开发全攻略:参数配置、项目实战与高级可视化资源整理
前端·vue.js·echarts·visual studio code
橘猫走江湖2 小时前
前端项目如何做 vibe coding
javascript·vue.js·架构
励志打工人跑跑2 小时前
JWT 身份验证与授权实战
vue.js
小新1102 小时前
vue架的网站修改端口
前端·javascript·vue.js
暗不需求2 小时前
从零实现一个 Vue Todos 任务清单:深入响应式编程与组合式 API
前端·vue.js·面试
xixixin_3 小时前
Promise.all 和 Promise.allSettled 详解
前端·javascript·vue.js