vue当文本宽度大于容器宽度时,el-tooltip的提示框就显示,否则不显示
时间: 2023-08-28 20:05:22 浏览: 566
可以使用Vue的计算属性和el-tooltip组件来实现这个需求。首先,在模板中设置一个包含文本的容器,并且使用一个带有特定类名的元素来获取容器的宽度:
```html
<template>
<div class="text-container">
<div class="text" ref="text">{{ text }}</div>
<el-tooltip class="tooltip" :content="text" :disabled="!showTooltip">
<div class="ellipsis">{{ text }}</div>
</el-tooltip>
</div>
</template>
```
接着,在计算属性中判断文本容器的宽度是否大于文本内容的宽度,如果大于,则展示el-tooltip提示框,否则不展示:
```js
<script>
export default {
data() {
return {
text: '这是一段很长很长的文本',
};
},
computed: {
showTooltip() {
const containerWidth = this.$refs.text.offsetWidth;
const textWidth = this.$refs.text.scrollWidth;
return textWidth > containerWidth;
},
},
};
</script>
```
最后,在CSS中设置特定类名的元素的样式,使得文本内容超出容器宽度时会被截断:
```css
.text {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
```
这样就可以实现当文本宽度大于容器宽度时,展示el-tooltip提示框,否则不展示。
阅读全文