关于el-tooltip自适应显示

友友们,你们是否总被要求el-tooltip自适应显示所困扰,觉得写那些判断很麻烦?那就收藏这篇文章吧,有需要的时候直接copy过去就好了。

注意:我用的vue3,环境不对的友友请自适应格式,哈哈。

子组件:Tooltip.vue

<script setup name="Tooltip">
import { ref, onMounted, nextTick } from 'vue'

const props = defineProps({
  content: {
    type: String,
    default: ''
  }
})

const isShowTooltip = ref(false)

const boxRef = ref(null)

const contentRef = ref(null)

onMounted(() => {
  nextTick(() => {
    isShowTooltip.value = contentRef.value.offsetWidth >= boxRef.value.offsetWidth
  })
})
</script>

<template>
  <div class="w-full h-full ellipsis" ref="boxRef">
    <el-tooltip effect="dark" :content="content" placement="top-start" :disabled="!isShowTooltip">
      <span ref="contentRef">{{ content }}</span>
    </el-tooltip>
  </div>
</template>

<style scoped lang="scss">
.ellipsis { // 省略号三要素
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
</style>

父组件应用

<span style="width: 200px;overflow: hidden;">
  <Tooltip :content="这是一段很长的文字。。。。。。" />
</span>

未成功的友友请查看两点:

1.打印查看offsetWidth,看看是否符合显示条件

2.可能样式还需要调整,请微调

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
鉴于引用和引用的内容,您遇到的问题是,当页面手动刷新后,<el-tooltip>组件无法显示tooltip,即无法展示鼠标悬停的提示信息。您尝试过在<el-tooltip>标签外面添加<el-tooltip>标签,并使用自定义的超链接组件实现了鼠标悬停展示tooltip的效果,但只要页面手动刷新,该tooltip就无法显示了。您还尝试了在<el-tooltip>组件上添加一个:key属性,并在js中使用$set()方法进行重新渲染,但页面刷新时仍然会出现没有展示tooltip的问题。 针对您的问题,可以考虑以下解决办法: 1. 确保在页面刷新后,组件的数据状态能够正确地被保留,以便正确地展示tooltip。您可以检查页面刷新时是否有相关的数据重置或重新加载的逻辑。 2. 确保在页面刷新后,<el-tooltip>组件能够正确地被重新渲染。您可以检查组件的生命周期钩子函数,例如created()或mounted(),确保在组件初始渲染后,触发重新渲染的逻辑。 3. 如果仍然无法解决问题,您可以尝试使用Vue.js的动态组件来动态加载<el-tooltip>组件,以确保每次页面刷新时都能正确地加载和显示tooltip组件。 希望以上解决办法能够帮助您解决<el-tooltip>无法显示的问题。123 #### 引用[.reference_title] - *1* *2* [el-tooltip无法显示的问题](https://blog.csdn.net/weixin_43882265/article/details/125995006)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *3* [element UI中使用tooltip组件,当里边的按钮设置disabled后,tooltip显示问题的解决方法](https://blog.csdn.net/cxwy_ing/article/details/122456704)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值