位置: IT常识 - 正文

Element UI 扩展tooltip 只在内容过长才显示(element插件安装方法)

编辑:rootadmin
Tooltip常用于展示鼠标 hover 时的提示信息。而在实际过程中,有这么一个需求:只有文字内容排不下,出现省略号,才需要显示tooltip的提示内容。本文章的思路是通过一个自定义指令实现如下效果:姓名字段过长时才显示tooltip ... 1. 介绍

推荐整理分享Element UI 扩展tooltip 只在内容过长才显示(element插件安装方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:elementui插件,elementui插件,element ui tooltip,elementui扩展组件,elementui扩展组件,element ui 插槽,element ui 插槽,element扩展组件,内容如对您有帮助,希望把文章链接给更多的朋友!

Tooltip常用于展示鼠标 hover 时的提示信息。

而在实际过程中,有这么一个需求:只有文字内容排不下,出现省略号,才需要显示tooltip的提示内容。

本文章的思路是通过一个自定义指令实现如下效果:姓名字段过长时才显示tooltip

2.element-ui(vue2版本)2.1 注册指令1)akTooltipAutoShow.jsElement UI 扩展tooltip 只在内容过长才显示(element插件安装方法)

说明:注册了一个名称为 'ak-tooltip-auto-show' 的指令。会根据内容进行判断是否展示tooltip。

import Vue from 'vue';import { on, off, getStyle } from 'element-ui/src/utils/dom';/*** ak-tooltip-auto-show* 当text没有被折叠时,不显示tooltip*/Vue.directive('ak-tooltip-auto-show', {inserted: function (el, binding, vnode) {el.addEventListener('mouseenter', function (e) {let defalutSilent = !!Vue.config.silent;Vue.config.silent = true;vnode.componentInstance.disabled = true;const range = document.createRange();range.setStart(el, 0);range.setEnd(el, el.childNodes.length);const rangeWidth = Math.round(range.getBoundingClientRect().width);const padding = (parseInt(getStyle(el, 'paddingLeft'), 10) || 0) + (parseInt(getStyle(el, 'paddingRight'), 10) || 0);if (rangeWidth + padding > el.offsetWidth || el.scrollWidth > el.offsetWidth) {vnode.componentInstance.disabled = false;}Vue.config.silent = defalutSilent;});}});2.2 使用

说明:使用<el-tooltip v-ak-tooltip-auto-show>包囊展示的内容。

<div class="details-inner__row"><span class="details-inner__row-name">姓名:</span><el-tooltip placement="top" effect="dark" :content="item.name" v-ak-tooltip-auto-show><span class="details-inner__row-value">{{item.name}}</span></el-tooltip></div>// css.details-inner__row-value {  width: 80%;  display: inline-block;  white-space: nowrap;  text-overflow: ellipsis;  overflow: hidden;}

  

3. element-plus(vue3版本)3.1 注册指令1)akTooltipAutoShow.js

说明:注册了一个名称为 'ak-tooltip-auto-show' 的指令。会根据内容进行判断是否展示tooltip。

注意:因为element-plus与之前的element-ui不一样,在element-plus(vue3版本)中是 <展示组件>包含<el-tooltip>的,所以代码中需要在<展示组件>内查找<el-tooltop>。

import { getStyle } from 'element-plus/lib/utils/dom/index';/*** show-overflow-tooltip for text* 当text没有被折叠时,不显示tooltip*/const akTooltipAutoShow = {created(el, binding, vnode) {let tooltipNode = vnode.children.find((childrenCmpt) => childrenCmpt.component?.type.name == 'ElTooltip');if (tooltipNode) {let { content } = tooltipNode.props;if (content && ['添加', '编辑', '删除','查看'].includes(content)) {el.addEventListener('click', function (e) {let defalutDisabled = tooltipNode.component.props.disabled;if (!defalutDisabled) {tooltipNode.component.props.disabled = true;setTimeout(() => {tooltipNode.component.props.disabled = defalutDisabled;}, 200);}});} else {el.addEventListener('mouseenter', (e) => {tooltipNode.component.props.disabled = true;const range = document.createRange();range.setStart(el, 0);range.setEnd(el, el.childNodes.length);const rangeWidth = Math.round(range.getBoundingClientRect().width);const padding = (parseInt(getStyle(el, 'paddingLeft'), 10) || 0) + (parseInt(getStyle(el, 'paddingRight'), 10) || 0);if (rangeWidth + padding > el.offsetWidth || el.scrollWidth > el.offsetWidth) {tooltipNode.component.props.disabled = false;}});}}}};export default akTooltipAutoShow;2) 进行局部或全局注册// main.jsconst app = createApp(App);import akTooltipAutoShow from './akTooltipAutoShow.js';app.directive('ak-tooltip-auto-show', akTooltipAutoShow);

  

3.2 使用

说明:因element-plus(vue3版本)本身不提供 root element,所以需要把此指令放到<el-tooltip>的父级组件。

<div class="details-inner__row">  <span class="details-inner__row-name">姓名:</span>  <span class="details-inner__row-value" v-ak-tooltip-auto-show>    <el-tooltip placement="top-end" :content="item.name">{{item.name}}</el-tooltip>  </span></div>// css.details-inner__row-value {  width: 80%;  display: inline-block;  white-space: nowrap;  text-overflow: ellipsis;  overflow: hidden;}

  

End Web开发之路系列文章 菜单加载中...
本文链接地址:https://www.jiuchutong.com/zhishi/304713.html 转载请保留说明!

上一篇:phpcms api怎么写接口(phpcms开发手册)

下一篇:phpcms v9怎么安装(phpcms v9官网)

  • 华为p40摄像头是多少像素(华为p40摄像头是什么品牌)

    华为p40摄像头是多少像素(华为p40摄像头是什么品牌)

  • 干电池是不是电源(干电池是不是电解电容)

    干电池是不是电源(干电池是不是电解电容)

  • 支付宝跟淘宝怎么解绑(支付宝跟淘宝怎么绑定)

    支付宝跟淘宝怎么解绑(支付宝跟淘宝怎么绑定)

  • 买的淘宝号实名认证了安全吗(买的淘宝号实名了总显未实名)

    买的淘宝号实名认证了安全吗(买的淘宝号实名了总显未实名)

  • 华为nova7nfc怎么用(华为nova7nfc怎么用公交)

    华为nova7nfc怎么用(华为nova7nfc怎么用公交)

  • 笔记本intel可以撕掉吗(intel笔记本怎么样)

    笔记本intel可以撕掉吗(intel笔记本怎么样)

  • 电脑麦克风怎么设置(电脑麦克风怎么调大声)

    电脑麦克风怎么设置(电脑麦克风怎么调大声)

  • 多闪聊天别人看不到吗(多闪聊天别人看得到吗)

    多闪聊天别人看不到吗(多闪聊天别人看得到吗)

  • 苹果耳机一只充不上电(苹果耳机一只充不满)

    苹果耳机一只充不上电(苹果耳机一只充不满)

  • 苹果不显示取消订阅(苹果不显示取消订阅只显示取消试用怎么办)

    苹果不显示取消订阅(苹果不显示取消订阅只显示取消试用怎么办)

  • soul隐身发布主页可见吗(soul里隐身发布瞬间自己主页会显示吗)

    soul隐身发布主页可见吗(soul里隐身发布瞬间自己主页会显示吗)

  • 如何分享自己的抖音视频(要怎么分享)

    如何分享自己的抖音视频(要怎么分享)

  • 短信拉黑了会显示什么(短信拉黑了会显已用短信发送吗)

    短信拉黑了会显示什么(短信拉黑了会显已用短信发送吗)

  • 存储最快的储存器是(存储速度最快的存储设备)

    存储最快的储存器是(存储速度最快的存储设备)

  • 腾讯会员只能qq和微信登录吗(腾讯会员只能qq登录吗)

    腾讯会员只能qq和微信登录吗(腾讯会员只能qq登录吗)

  • 中继器和路由器的区别(中继器和路由器分别工作在)

    中继器和路由器的区别(中继器和路由器分别工作在)

  • 在文档中怎么画下横线(在文档中怎么画横线)

    在文档中怎么画下横线(在文档中怎么画横线)

  • ipad2018充电要多久(ipad充电需要多少度电)

    ipad2018充电要多久(ipad充电需要多少度电)

  • ps钢笔路径怎么描边(ps钢笔路径怎么变成线)

    ps钢笔路径怎么描边(ps钢笔路径怎么变成线)

  • 苹果手机屏幕是多少k(苹果手机屏幕是2K吗)

    苹果手机屏幕是多少k(苹果手机屏幕是2K吗)

  • 淘宝问大家多久显示(淘宝问大家多久显示出来啊)

    淘宝问大家多久显示(淘宝问大家多久显示出来啊)

  • 电脑待机图片怎么设置(电脑待机图片怎么设置壁纸)

    电脑待机图片怎么设置(电脑待机图片怎么设置壁纸)

  • 苹果8不能关机充电吗(苹果不能关机怎么办)

    苹果8不能关机充电吗(苹果不能关机怎么办)

  • 荣耀青春版10有没有红外线(荣耀青春版10有双系统吗)

    荣耀青春版10有没有红外线(荣耀青春版10有双系统吗)

  • 荣耀为什么和华为分家(荣耀为什么和华为合作)

    荣耀为什么和华为分家(荣耀为什么和华为合作)

  • 7pro是什么手机(7pro参数)

    7pro是什么手机(7pro参数)

  • 【目标检测】YOLOV1详解(目标检测yolov5)

    【目标检测】YOLOV1详解(目标检测yolov5)

  • ChatGPT火爆来袭,携手参与为开源助力

    ChatGPT火爆来袭,携手参与为开源助力

  • 附加税税率是多还是少
  • 劳务报酬个人所得税税率表
  • 预提费用的附件怎么做
  • 装修行业开票税率
  • 库存商品盘点的作用表现为
  • 新公司利润表怎么填
  • 网上报税需要准备什么资料
  • 退增值税需要多久
  • 股东分红是净利润还是毛利润
  • 报销费用可不可以开专票
  • 个体工商户出租商铺个人所得税
  • 票货分离怎么处理
  • 厂家返利计提会计分录
  • 工资发多了需要退回吗
  • 当月作废的专票需要开负数发票么
  • 哪些计入应收账款
  • 境外公司委托境内公司提供劳务
  • 如何区分劳务派遣和劳动合同
  • 增值税简易征收一览表
  • 个体工商户经营所得税怎么申报
  • 残保金的工资总额是应发还是实发
  • 增值税完税凭证怎么做账
  • 未分配利润为什么不分配
  • 国税地税纳税申报
  • 政府补助专项资金账务处理
  • 公转私开票可以转吗
  • 商贸流通企业的构成
  • 卸载了驱动程序会怎么样
  • win10系统的任务栏
  • 产负债表的负债项目,显示了企业所负担债务的
  • php中数组的概念
  • linux 数字加减
  • 软件开发公司排行榜
  • 贷款钱到账又被转出去
  • mouse.exe在哪个文件夹
  • win11预览版dev改beta
  • 工程完工后的质保金怎么入账
  • 上市公司股东股份轮候冻结是什么意思
  • php+jQuery+Ajax实现点赞效果的方法(附源码下载)
  • 纳税调整增加额怎么做会计分录
  • 公司清算的补偿方案是不是应该公布了
  • 跨地区经营增值税预缴
  • 待报解预算收入什么意思
  • php统计中文长度
  • 公司以现金形式发工资的最好解释
  • 用vue做的企业项目
  • 中间业务收入怎么入账
  • 微信支付算库存商品吗
  • 固定资产与固定资产净值的区别
  • 预付开发票加油后还能开吗?
  • 车间机器设备修理费用计入什么科目
  • 销售送客户礼物
  • 认缴意思
  • 现金收入支出表怎么填
  • 现金余额出现负数的原因
  • 融资租赁固定资产不属于筹资活动
  • 企业购买黄金该交什么税
  • 小微企业应交增值税如何记账
  • 明细分类账有哪三种
  • 建账时应取得哪些资料
  • xp系统怎么关闭自动关机
  • 让windows server 2003 32位支持8G内存大内存
  • whagent.exe - whagent是什么进程
  • redhat磁盘挂载
  • win10预览版
  • xp怎么改w7
  • linux关闭sh
  • nodejs 插件开发
  • androidserviceslibrary停用
  • linux怎么ssh远程
  • 新形势下税务工作
  • 广西电子发票如何申请
  • 浙江省医保改革方案2022
  • 重庆办理4050社保需要什么材料
  • 实名办税信息采集的身份证件
  • 西安大修基金和契税怎么计算
  • 花卉种植税收优惠政策案例
  • 徐州市哪些区域封闭了
  • 怎么判断增值税发票是否虚开
  • 电子发票查询官网入口国家税务局重庆电子税务
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设