vue.js el-tooltip根据文字长度控制是否提示toolTip问题

 更新时间:2024年02月28日 09:46:48   作者:Lemon今天学习了吗  
这篇文章主要介绍了vue.js el-tooltip根据文字长度控制是否提示toolTip问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、需求

如何判断当前文本文字是否超出文本长度,是否需要出现提示toolTip。

效果图如下:

二、实现

1.表格字段鼠标放置el-popover出现 “引用主题”

的具体内容;

<!-- 表格字段:引用主题 -->
<el-table-column
  align="center"
  header-align="center"
  width="100"
  label="引用主题"
  sortable="custom"
  prop="refCnt"
  show-overflow-tooltip
>
<template slot-scope="scope">
    <span v-if="scope.row.refCnt == '0'" style="color: #f56c6c">0</span>
    <el-popover
      v-else
      placement="bottom"
      width="150"
      trigger="hover"
    >
    <ul :data="scope.row?.themeVos" class="ul-popover">
       <li v-for="(item, index) in scope.row?.themeVos" :key="index">
          <el-tooltip
            class="item"
            effect="light"
            :content="item?.themeName"
            placement="top-start"
            :disabled="!isShowTooltip"
         >
            <!-- visibilityChange:鼠标放置后是否展示省略部分;-->
            <!-- class="overflow":是否超出隐藏出现省略号; -->
            <div @mouseenter="visibilityChange($event)" class="overflow">
                {{ item?.themeName }}
            </div>
        </el-tooltip>
       </li>
     </ul>
     <span
        style="color: #1989fe; cursor: pointer"
        slot="reference"
     >
        {{ scope.row.refCnt }}
     </span>
    </el-popover>
  </template>
</el-table-column>

2.定义isShowTooltip控制是否展示提示文字tooltip

data() {
    return {
        isShowTooltip: false, // 是否显示提示文字
    }
}

3.对应的鼠标放置触发的方法实现

 // 是否提示toolTip
 visibilityChange(event) {
    const ev = event.target
    const ev_weight = ev.scrollWidth // 文本的实际宽度   scrollWidth:对象的实际内容的宽度,不包边线宽度,会随对象中内容超过可视区后而变大。
    const content_weight = ev.clientWidth // 文本的可视宽度 clientWidth:对象内容的可视区的宽度,不包滚动条等边线,会随对象显示大小的变化而改变。
    // const content_weight = this.$refs.tlp.$el.parentNode.clientWidth; // 文本容器宽度(父节点)
    if (ev_weight > content_weight) {
    // 实际宽度 > 可视宽度  文字溢出
        this.isShowTooltip =true
    } else {
        // 否则为不溢出
        this.isShowTooltip = false
    }
  },

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue中keyup.enter和blur事件冲突的问题及解决

    Vue中keyup.enter和blur事件冲突的问题及解决

    这篇文章主要介绍了Vue中keyup.enter和blur事件冲突的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Vue中el-menu-item实现路由跳转的完整步骤

    Vue中el-menu-item实现路由跳转的完整步骤

    这篇文章主要给大家介绍了关于Vue中el-menu-item实现路由跳转的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-09-09
  • vue-property-decorator的使用解读

    vue-property-decorator的使用解读

    这篇文章主要介绍了vue-property-decorator的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • vue中如何实现pdf文件预览的方法

    vue中如何实现pdf文件预览的方法

    这篇文章主要介绍了vue中如何实现pdf文件预览的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • vue中input标签上传本地文件或图片后获取完整路径的解决方法

    vue中input标签上传本地文件或图片后获取完整路径的解决方法

    本文给大家介绍vue中input标签上传本地文件或图片后获取完整路径,如E:\medicineOfCH\stageImage\xxx.jpg,本文给大家分享完美解决方案,感兴趣的朋友跟随小编一起看看吧
    2023-04-04
  • 最简单的vue消息提示全局组件的方法

    最简单的vue消息提示全局组件的方法

    这篇文章主要介绍了最简单的vue消息提示全局组件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • vue+uniapp瀑布流布局多种实现方式示例代码

    vue+uniapp瀑布流布局多种实现方式示例代码

    由于使用uniapp开发的微信小程序不需要考虑响应式,因此瀑布流的实现相对于pc端更为简单,下面这篇文章主要给大家介绍了关于vue+uniapp瀑布流布局多种实现方式的相关资料,需要的朋友可以参考下
    2023-03-03
  • Element plus实现图片手动上传与回显的过程

    Element plus实现图片手动上传与回显的过程

    近期,发现点击修改,element ui 的图片没有回显到框中,所以本文给大家介绍了Element plus实现图片手动上传与回显的过程,文中通过代码示例给大家介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-09-09
  • Vue elementUI表单嵌套表格并对每行进行校验详解

    Vue elementUI表单嵌套表格并对每行进行校验详解

    element-ui中有详细的各种表格及表格方法,下面这篇文章主要给大家介绍了关于Vue elementUI表单嵌套表格并对每行进行校验的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-01-01
  • 保姆级Vue3开发教程分享

    保姆级Vue3开发教程分享

    这篇Vue3开发文档,包含了 Vue3 开发中使用的所有语法,文中的示例代码讲解详细,希望所有像他一样还不熟的伙伴快速上手 Vue3,不会的再不看要遭老罪咯
    2023-04-04

最新评论