ElementUi使用el-tooltip实现超出部分显示省略号

效果前:

效果后:

创建myTooltio.vue组件

<template>
<div class="tooltip-container">
<el-tooltip class="my-tooltip" :disabled="showTooltip" :content="text">
<p ref="tooltipBox" class="text-box">
<span ref="tooltipItem" class="">{{text}}</span>
</p>
</el-tooltip>
</div>
</template>
<script>
export default {
name: "myTooltip",
props: {
text: {
type: String,
default: () => ""
}
},
data(){
return {
showTooltip: true
}
},
watch:{
text:{
handler(){
this.$nextTick(()=>this.checkWidth());
},
immediate: true
}
},
methods:{
checkWidth(){
const boxWidth = this.$refs['tooltipBox'].offsetWidth;
const itemWidth = this.$refs['tooltipItem'].offsetWidth;
this.showTooltip = boxWidth > itemWidth
}
}
};
</script>
<style scoped lang="less">
.tooltip-container{
width:100%;
.text-box{
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
</style>

lang=“less” 可以敲层级关系的样式
scoped 使style内的样式只作用于当前的界面

引入myTooltio.vue组件

在需要的*.vue中引入

<div class="test">
<my-tooltip :text="2132131231231231231231221"></my-tooltip>
</div>
<script>
import myTooltip from "@/components/tools/myTooltip";
export default {
name: "TestItem",
components: {
myTooltip
},
}
<style scoped>
/deep/ .test{
width:180px;
height: 40px;
/*border:1px solid #345123;*/
cursor:pointer;
}
</style>

至此刷新页面即可。

若报错,提示缺少lessless-loader模块,需要安装一下。

cmd打开命令窗口进入到当前项目路径下,分别输出以下命令安装:

# 保险起见,我们还是安装4+比较好
npm install less@4 --save-dev
# less-loader的版本号要搭配webpack的版本号来选择,webpack@4+可以选择的less-loader版本是5~7
npm install less-loader@7 --save-dev

 

posted @   阿尔法哲  阅读(677)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示