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

相关推荐
摇滚侠3 小时前
SpringBoot3+Vue3 全套视频教程 45-51
前端·javascript·vue.js
星河耀银海5 小时前
框架结合:Vue+HTML5+AI实现智能前端应用开发
前端·vue.js·html5
英勇无比的消炎药6 小时前
还在手写对话面板?TinyRobot Container 一个组件装下整个 AI 聊天
vue.js
不甘平凡的小鸟7 小时前
Element-UI记录
javascript·vue.js·ui·elementui
用户2930750976697 小时前
流式输出:Vue 3 + DeepSeek API 实战
vue.js
先吃饱再说7 小时前
流式输出完全指南:让 AI 对话像打字机一样流畅
javascript·vue.js
OpenTiny社区8 小时前
TinyEngine 2.11 重磅更新!AI 深度嵌入画布,Vue 项目一键转换成 DSL
前端·vue.js·人工智能·ai编程·opentiny·tinyengine
小小编程路11 小时前
C++ 块作用域详解:从基础到实战
前端·javascript·vue.js
虚惊一场11 小时前
MarkView:纯前端 Markdown 实时预览工具的架构设计
前端·javascript·vue.js
早期的虫儿有鸟吃11 小时前
Vue3
前端·javascript·vue.js