el-tooltip设置文字溢出时展示否则不展示

改写el-tooltip使其支持文字溢出时展示否则不展示,而不是需要使用js设置单独控制        

 新建 src/utils/rewriteElTooltip.js (一模一样 cv就行)

export default function rewriteElTooltip(el) {
  el.props = {
    ...el.props,
    overflow: Boolean, // 为el-tooltip追加名为'overflow'的props属性
  };
  el.methods = {
    ...el.methods,
    // 重写el-tooltip的show方法
    show() {
      // 如果设置了overflow,则判断文字是否溢出,若未溢出则不显示tooltip
      if (this.overflow) {
        if (this.$el.scrollWidth <= this.$el.clientWidth) return;
      }
      // el-tooltip自带的,保留
      this.setExpectedState(true);
      this.handleShowPopper();
    },
  };
}

main.js 中

import Element, { Tooltip } from "element-ui";
import "element-ui/lib/theme-chalk/index.css";
import rewriteElTooltip from "@/utils/rewriteElTooltip";
rewriteElTooltip(Tooltip); // 重写el-tooltip的方法 注意一定要放在 Vue.use(ElementUI); 之前
Vue.use(Element);

使用: 添加 overflow 属性即可

<el-tooltip
              overflow
              effect="dark"
              :content="
                (formData.diseaseLocation ? formData.diseaseLocation : '') +
                (formData.diseaseInformation ? formData.diseaseInformation : '')
              "
              placement="top-start"
            >
              <div class="dialog-box-title">
                {{ formData.diseaseLocation }}{{ formData.diseaseInformation }}
              </div>
            </el-tooltip>

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
el-tooltip是Vue框架中的一个指令,用于在文字溢出展示tooltip提示。可以通过设置元素的宽度和内容的宽度来判断是否需要展示tooltip。如果内容的宽度大于元素的宽度,则展示tooltip提示,否则不展示。可以使用以下代码实现文字溢出的效果: ```css li { overflow: hidden !important; text-overflow: ellipsis !important; display: -webkit-box !important; -webkit-line-clamp: 1 !important; -webkit-box-orient: vertical !important; } ``` 在鼠标移入元素,可以通过比较元素的实际宽度和可视宽度来判断文字是否溢出。如果实际宽度大于可视宽度,则文字溢出,否则不溢出。可以使用以下代码实现: ```javascript visibilityChange(event) { const ev = event.target; const evWeight = ev.scrollWidth; const contentWeight = ev.clientWidth; if (evWeight > contentWeight) { // 实际宽度 > 可视宽度,文字溢出 this.isShowTooltip = false; } else { // 否则为不溢出 this.isShowTooltip = true; } } ``` 当没有传递值给el-tooltip指令,将使用el-tooltip的默认配置,提示内容默认显示指令绑定元素的文本内容。可以使用以下代码实现: ```html <el-input v-model="value" placeholder="请输入内容" style="width: 200px; margin-bottom: 25px"></el-input> <div v-overflow-tooltip class="overflow">{{ value }}</div> ``` 如果需要自定义tooltip的内容、主题、显示位置等参数,可以通过传递参数给el-tooltip指令来实现。可以使用以下代码实现: ```html <el-input v-model="value" placeholder="请输入内容" style="width: 200px; margin-bottom: 25px"></el-input> <div v-overflow-tooltip="{content:'这是通过content自定义的溢出显示内容',effect:'light'}" class="overflow">{{ value }}</div> ``` 以上是关于el-tooltip文字溢出的一些解决方案和示例代码。希望对你有帮助!\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [Vue 设置el-tooltip根据文字溢出...显示](https://blog.csdn.net/CCC_chtt/article/details/130345523)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [自定义vue指令,实现el-tooltip仅在文字溢出显示,文字溢出则不显示,复制即可使用](https://blog.csdn.net/qq1219579255/article/details/129446532)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值