Antd的Tooltip如何在文字不超出时不显示

博客介绍了如何优雅地控制Antd的Tooltip组件,使其在文字内容溢出时才显示。通过监听onMouseEnter事件,判断内容宽度是否大于滚动宽度来控制Tooltip的显隐,避免了为每个Tooltip声明单独的状态,简化了代码维护。这种方法提供了一种简洁的解决方式,适用于需要动态控制Tooltip显示场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Antd的Tooltip默认是鼠标放在内容上就会自动显示,现在想只有文字溢出省略时才显示Tooltip,要怎么做呢?很常见的一种方式是判断文字溢出然后通过visible属性去控制显隐,这里就需要声明一个标识状态去控制,如果有多个Tooltip那不是要声明多个状态?很麻烦!

这里推荐一种优雅的写法:

// 控制Tooltip显隐
function showToolTip(e) {
  if (e.target.clientWidth >= e.target.scrollWidth) {
    e.target.style.pointerEvents = "none"; // 阻止鼠标事件
  }
}

<Tooltip
  title={node.name}
  color="#fff"
  overlayInnerStyle={{ color: "#000" }}
  onMouseEnter={showToolTip}
>
  <span
    style={{
      display: "inline-block",
      width: "100%",
      overflow: "hidden",
      whiteSpace: "nowrap",
      textOverflow: "ellipsis",
      fontSize: "20px",
    }}
  >
    {node.name}
  </span>
</Tooltip>

这里结合onMouseEnter事件,在事件中判断内容宽≥内容滚动宽度就去掉鼠标事件。

怎么样?是不是很优雅!

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值