做项目中文本溢出显示省略号是一个非常常见的功能, 一般做法都是增加 css 样式并且鼠标悬浮后显示全部内容, 但有时候明明没有溢出, 悬浮也会显示内容, 所以我们需要做一点处理
这里是源码
这里我们主要使用 el-tooltip 这个组件来实现这个功能
封装思路:
- 通过 
content 传入文本 
- 通过 
css 实现溢出显示省略号的样式 
- 鼠标悬浮后, 判断 
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>
   |