当前位置: 首页 > news >正文

vue 实现鼠标放上后显示,挪开后隐藏(点击显示/隐藏)

在Vue中实现鼠标悬停显示、移出隐藏的效果,可以通过以下两种常用方式实现:

1、原生事件绑定方案(适合简单交互)

<template><div><div @mouseenter="isShow = true" @mouseleave="isShow = false"class="hover-area">鼠标移入这里</div><div v-show="isShow" class="content-box">这是要显示隐藏的内容</div></div>
</template><script>
export default {data() {return {isShow: false}}
}
</script><style>
.hover-area {padding: 10px;background: #f0f0f0;cursor: pointer;
}
.content-box {margin-top: 10px;padding: 15px;background: #e1f5fe;
}
</style>

这段代码通过mouseenter/mouseleave事件控制显示状态,适合基础交互场景。
2、组件封装方案(推荐复用)

<template><div class="hover-wrapper"><div @mouseenter="handleMouseEnter"@mouseleave="handleMouseLeave"class="trigger"><slot name="trigger"></slot></div><transition name="fade"><div v-show="isVisible" class="tooltip-content"><slot name="content"></slot></div></transition></div>
</template><script>
export default {data() {return {isVisible: false}},methods: {handleMouseEnter() {this.isVisible = true},handleMouseLeave() {this.isVisible = false}}
}
</script><style>
.hover-wrapper {position: relative;display: inline-block;
}
.tooltip-content {position: absolute;z-index: 100;padding: 8px 12px;background: #333;color: white;border-radius: 4px;
}
.fade-enter-active, .fade-leave-active {transition: opacity 0.3s;
}
.fade-enter, .fade-leave-to {opacity: 0;
}
</style>

这个组件采用插槽设计,支持自定义触发元素和内容,添加了过渡动画效果,适合项目复用。使用时通过slot分别传入触发区域和悬浮内容即可

3、点击事件完成切换

	<template slot-scope="scope"><div><div v-show="!isShow"@click="showpaperpass"class="hover-area">隐藏时的内容</div></div><div v-show="isShow" class="content-box">显示的内容</div>            </template><script>
export default {data() {return {isShow: false}},methods: {showpaperpass() {this.isShow = truesetTimeout(() => {this.isShow = false}, 7000); // 7秒后隐藏 },}
}
</script>
<style>
.hover-area {padding: 10px;background: #f0f0f0;cursor: pointer;
}
.content-box {margin-top: 10px;padding: 15px;background: #e1f5fe;
}
</style>
http://www.xdnf.cn/news/694135.html

相关文章:

  • 【微波遥感第一期】基本概念
  • OpenCV CUDA模块直方图计算------在 GPU 上计算图像直方图的函数calcHist()
  • 在部署了一台mysql5.7的机器上部署mysql8.0.35
  • QGraphicsView、QGraphicsScene和QGraphicsItem图形视图框架(七)修改item属性
  • Golang分布式系统开发实践指南
  • GO语言进阶:掌握进程OS操作与高效编码数据转换
  • 命象架构法 02|你的系统有“用神”吗?
  • [Python] 如何使用 Python 调用 Dify 工作流服务实现自动化翻译
  • Java常用加密方式
  • 聊一聊如何使用自动化测试来提高接口测试效率的?
  • PowerBI企业运营分析—绩效考核分析
  • 如何使用DeepSpeed来训练大模型
  • CPU特权级别:硬件与软件协同构建系统安全的基石
  • UDP组播套接字与URI/URL/URN技术详解
  • WHAT - useWebSocket 推荐
  • 深入理解设计模式之职责链模式
  • Python包管理器 uv替代conda?
  • 基于bp神经网络的adp算法
  • Django 中的路由系统
  • Elasticsearch父子关系解析
  • SpringBoot3.4.5 开启虚拟线程(JDK21)
  • WPF的基础设施:XAML基础语法
  • ISOLAR软件生成报错处理(三)
  • PR2020+MS1824+MS7210+MS2130 1080P@60Hz USB3.0采集
  • 用户关注表的设计
  • 【深度学习-pytorch篇】5. 卷积神经网络与LLaMA分类模型
  • 钩子函数的作用(register_hook)
  • 基于c++11重构的muduo核心库项目梳理
  • 动态规划-LCR 091.粉刷房子-力扣(LeetCode)
  • xcode 编译运行错误 Sandbox: rsync(29343) deny(1) file-write-create