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>

相关推荐

  1. Vue封装Tooltip(提示工具)

    2024-07-13 22:28:02       22 阅读
  2. WPF之ToolTip提示

    2024-07-13 22:28:02       35 阅读
  3. vue elementUI message提示封装

    2024-07-13 22:28:02       52 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 22:28:02       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 22:28:02       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 22:28:02       62 阅读
  4. Python语言-面向对象

    2024-07-13 22:28:02       72 阅读

热门阅读

  1. fastermaker-boot代码生成器

    2024-07-13 22:28:02       17 阅读
  2. 使用Spring Boot实现分布式锁

    2024-07-13 22:28:02       20 阅读
  3. Qt MV架构 数据-窗口映射器

    2024-07-13 22:28:02       24 阅读
  4. 暑假自律日记九

    2024-07-13 22:28:02       21 阅读
  5. 如何在PostgreSQL正确的 使用UUID 作为主键

    2024-07-13 22:28:02       22 阅读
  6. 《NX二次开发官方案例》专栏目录B

    2024-07-13 22:28:02       19 阅读
  7. 并行编程实战——TBB编程流图的问题

    2024-07-13 22:28:02       22 阅读
  8. MySQL零散拾遗

    2024-07-13 22:28:02       25 阅读
  9. 使用 GPT-4 和 ChatGPT 构建应用程序

    2024-07-13 22:28:02       22 阅读