el-tooltip根据内容宽度是否显示

一、问题引入

使用 el-tooltip 时需要根据内容宽度来决定是否显示鼠标移入效果,内容超出省略号(即内容太多)时显示鼠标移入效果

二、代码实现

1、页面元素绑定鼠标事件

<div v-for="(v,i) in configs.filter(v=>v.name==='znkfRecommendedProblem')" :key="i" class="normalquestion" @click="debounceSend(v.value)">
    <img src="../../assets/service/talk.png" alt="">
    <el-tooltip :disabled="isShowTooltip" class="item" effect="dark" popper-class="service_popper" :content="v.value" placement="bottom-end">
        <div @mouseover="onMouseOver(v.value+i)" class="desc">
            <span :ref="v.value+i">{{v.value}}</span>
        </div>
    </el-tooltip>
</div>    

2、动态获取内容宽度觉得是否显示鼠标效果

复制代码
        onMouseOver(str) {
            try {
                const tag = this.$refs[str][0]
                const parentWidth = tag.parentNode.offsetWidth // 获取元素父级可视宽度
                const contentWidth = tag.offsetWidth // 获取元素可视宽度
                this.isShowTooltip = contentWidth <= parentWidth
            } catch (error) {

            }
        },
复制代码

超出省略号

复制代码
            .desc {
                flex: 1;
                font-family: SourceHanSansCN-Regular;
                font-size: 14px;
                color: #333333;
                font-weight: 400;
                margin-left: 10px;
                overflow: hidden;
                white-space: nowrap;
                text-overflow: ellipsis;
                cursor: pointer;
                &:hover {
                    color: #ff9f0a;
                    text-decoration: underline;
                    text-underline-offset: 3px;
                }
            }
复制代码

 

posted @   盼星星盼太阳  阅读(433)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示