项目中固定宽度的容器文本超出显示省略号,超出部分显示tooltip场景很常见,所以自己就着手写了一个过滤器用于判断文本是否超出。
文本超出显示省略号
.t-ellipsis {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.t-column-ellipsis {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
}
超出显示tooltip提示
思路
确定一个固定宽度的盒子比较我输入文本的宽度是否大于固定盒子宽度。
注册全局过滤器
msg: 文字信息 width: 父盒子固定宽度
Vue.filter('showTooltip', (msg, width) => {
let app = document.querySelector('#app')
let span = document.createElement('span')
span.innerHTML = msg
app.appendChild(span)
let isShow = span.offsetWidth > width
app.removeChild(span)
return !isShow
})
显示
<el-tooltip popper-class="atooltip"
effect="dark"
:content="msg"
:disabled="msg | showTooltip(300)"
placement="top">
<div class="t-ellipsis">
{{msg}}
</div>
</el-tooltip>
欢迎大哥评论解决办法
|