我们在键盘上留下的余温, 也将随时代传递到更远的将来


:D 获取中...

做项目中文本溢出显示省略号是一个非常常见的功能, 一般做法都是增加 css 样式并且鼠标悬浮后显示全部内容, 但有时候明明没有溢出, 悬浮也会显示内容, 所以我们需要做一点处理

这里是源码

这里我们主要使用 el-tooltip 这个组件来实现这个功能

封装思路:

  1. 通过 content 传入文本
  2. 通过 css 实现溢出显示省略号的样式
  3. 鼠标悬浮后, 判断 scrollWidth 是否超过 offsetWidth, 如果超过, 显示 tooltip, 否则设置 disabled

由于比较简单, 直接上代码了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<template>
<el-tooltip class="text-ellipsis" v-bind="$attrs" :disabled="disabled" :content="content">
<div @mouseenter.stop="handleMouseEnter">
{{ content }}
</div>
</el-tooltip>
</template>

<script>
export default {
name: 'TextEllipsis',
props: {
content: {
type: String,
default: ''
}
},
data() {
return {
disabled: true
}
},
methods: {
handleMouseEnter(e) {
const { scrollWidth, offsetWidth } = e.target
this.disabled = scrollWidth <= offsetWidth
}
}
}
</script>

<style lang="less" scoped>
.text-ellipsis {
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
</style>

 评论

 无法加载Disqus评论系统,请确保您的网络能够正常访问。