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

Vue封装Tooltip(提示工具)

<template>  <div class="tooltip" @mouseover="showTooltip" @mouseleave="hideTooltip">  <slot></slot> <!-- 使用slot来接收传入的内容 -->  <span class="tooltiptext" v-if="visible">{{ tooltipText }}</span>  </div>  
</template><script>  
export default {  name: 'Tooltip',  props: {  tooltipText: String // 接收外部传入的提示文本  },  data() {  return {  visible: false // 控制提示框的显示隐藏  };  },  methods: {  showTooltip() {  this.visible = true;  },  hideTooltip() {  this.visible = false;  }  }  
}  
</script><style scoped>  
.tooltip {  position: relative;  display: inline-block; /* 确保Tooltip可以跟随内容的宽度 */  /* 可以添加一些内边距或外边距来避免内容过于紧凑 */  padding: 5px;  margin: 10px;  border-bottom: none; /* 移除底部边框,因为它可能不再需要 */  /* 其他样式可以根据需要添加 */  
}  .tooltip .tooltiptext {  visibility: hidden;  width: auto; /* 使用auto宽度可以适应内容 */  background-color: black;  color: #fff;  text-align: center;  border-radius: 6px;  padding: 5px 10px; /* 增加水平内边距以改善可读性 */  /* 定位 */  position: absolute;  z-index: 1;  bottom: 100%; /* 原始位置,但我们会用transform来调整 */  left: 50%;  transform: translateX(-50%) translateY(-10px); /* 将Tooltip向上移动 */  /* 可以添加箭头样式 */  ::after {  content: " ";  position: absolute;  bottom: 100%; /* Tooltip底部 */  left: 50%;  margin-left: -5px;  border-width: 5px;  border-style: solid;  border-color: black transparent transparent transparent;  }  
}  /* 当Tooltip可见时 */  
.tooltip:hover .tooltiptext {  visibility: visible;  
}  
</style>

使用

<template>  <div>  <Tooltip tooltipText="这是提示文本">  鼠标悬停在这里  </Tooltip>  </div>  
</template>  <script>  
import Tooltip from './components/Tooltip.vue';  export default {  components: {  Tooltip  }  
}  
</script>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 产业知识图谱:金融科技的创新引擎
  • MFC扩展库BCGControlBar Pro v35.0 - 可视化管理主题等全新升级
  • 在大型企业级应用中,如何优化 XML 数据的存储和检索效率,以满足高并发访问需求?
  • Python打开Excel文档并读取数据
  • Grafana
  • 光学传感器图像处理流程(一)
  • 怎么用PPT录制微课?详细步骤解析!
  • IMS架构中的注册与会话流程:RTPEngine集成及消息路由详解
  • sqlalchemy.orm中validates对两个字段进行联合校验
  • 浅析Kafka Streams中KTable.aggregate()方法的使用
  • 【活动预告】Apache IoTDB TsFile 智慧能源应用“上会”啦!
  • 【中级通信考试】-动力与环境专业:第四章 机房空调系统
  • win10系统更新后无法休眠待机或者唤醒,解决方法如下
  • 对为什么react需要时间分片,vue3不需要的浅学习
  • iPhone删除所有照片的高效三部曲
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • CSS 三角实现
  • Cumulo 的 ClojureScript 模块已经成型
  • Java 内存分配及垃圾回收机制初探
  • java8 Stream Pipelines 浅析
  • java8-模拟hadoop
  • Linux链接文件
  • Otto开发初探——微服务依赖管理新利器
  • PHP的类修饰符与访问修饰符
  • React-flux杂记
  • vue 配置sass、scss全局变量
  • vue自定义指令实现v-tap插件
  • windows下使用nginx调试简介
  • 安卓应用性能调试和优化经验分享
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 初探 Vue 生命周期和钩子函数
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 选择阿里云数据库HBase版十大理由
  • #Ubuntu(修改root信息)
  • (007)XHTML文档之标题——h1~h6
  • (4) PIVOT 和 UPIVOT 的使用
  • (C语言)共用体union的用法举例
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (七)理解angular中的module和injector,即依赖注入
  • (学习总结16)C++模版2
  • (杂交版)植物大战僵尸
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)linux下的时间函数使用
  • (转载)(官方)UE4--图像编程----着色器开发
  • .gitignore文件设置了忽略但不生效
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NetCore 如何动态路由
  • .NET分布式缓存Memcached从入门到实战
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • @Transactional事务注解内含乾坤?