当前位置:首页 > React

react tooltip 实现

2026-01-26 16:07:47React

React Tooltip 实现方法

使用第三方库 react-tooltip

安装 react-tooltip 库:

npm install react-tooltip

引入并使用:

import React from 'react';
import { Tooltip } from 'react-tooltip';

const App = () => {
  return (
    <div>
      <button data-tooltip-id="my-tooltip" data-tooltip-content="Hello world!">
        Hover me
      </button>
      <Tooltip id="my-tooltip" />
    </div>
  );
};

export default App;

使用 CSS 自定义样式

通过 placevariant 等属性调整位置和样式:

react tooltip 实现

<Tooltip 
  id="my-tooltip" 
  place="top" 
  variant="dark" 
  style={{ fontSize: '14px' }}
/>

动态内容

通过 data-tooltip-content 动态更新内容:

<button 
  data-tooltip-id="dynamic-tooltip" 
  data-tooltip-content={isActive ? "Active" : "Inactive"}
>
  Toggle
</button>
<Tooltip id="dynamic-tooltip" />

自定义组件作为 Tooltip

将 React 组件作为 Tooltip 内容:

react tooltip 实现

const CustomContent = () => <div>Custom <b>HTML</b></div>;

<button data-tooltip-id="custom-tooltip">
  Hover for custom content
</button>
<Tooltip id="custom-tooltip">
  <CustomContent />
</Tooltip>

手动控制显示/隐藏

通过 TooltipisOpensetIsOpen

import { useState } from 'react';

const App = () => {
  const [isOpen, setIsOpen] = useState(false);
  return (
    <div>
      <button onClick={() => setIsOpen(!isOpen)}>
        Toggle Tooltip
      </button>
      <Tooltip 
        id="manual-tooltip" 
        isOpen={isOpen} 
        content="Manual control"
      />
    </div>
  );
};

延迟显示/隐藏

通过 delayShowdelayHide 控制延迟时间(毫秒):

<Tooltip 
  id="delayed-tooltip" 
  delayShow={500} 
  delayHide={200}
/>

无障碍支持

添加 aria-labelledbyaria-describedby 属性:

<button 
  data-tooltip-id="a11y-tooltip" 
  aria-labelledby="a11y-tooltip"
>
  Accessible Button
</button>
<Tooltip id="a11y-tooltip" content="Accessible tooltip" />

注意事项

  • 确保为每个 Tooltip 分配唯一的 id
  • 动态内容需通过 data-tooltip-content 或子组件更新。
  • 复杂样式建议通过 style 或 CSS 类名覆盖。

标签: reacttooltip
分享给朋友:

相关文章

react如何运行

react如何运行

运行React项目的步骤 安装Node.js 确保系统已安装Node.js(建议版本12以上),可从官网下载并安装。Node.js自带npm包管理器,用于后续依赖安装。 创建React项目 使用官方…

react如何调试

react如何调试

调试 React 应用的方法 使用 React Developer Tools React Developer Tools 是 Chrome 和 Firefox 的浏览器扩展,可以检查组件树、状态和…

react如何浮动

react如何浮动

使用 CSS 实现浮动 在 React 中实现浮动效果可以通过 CSS 的 float 属性完成。在组件的样式文件或内联样式中直接设置 float: left 或 float: right。…

react如何迭代

react如何迭代

在 React 中迭代数组或对象 React 提供了多种方式来处理数组或对象的迭代,以下是常见的方法: 使用 map 方法迭代数组 map 是 JavaScript 数组的内置方法,常用于在 Rea…

react如何同步

react如何同步

React 同步状态管理方法 在 React 中实现同步状态管理,可以通过以下多种方式实现: 使用 useState 和 useEffect 钩子 通过 useState 定义状态,使用 useEf…

react如何调度

react如何调度

React 调度机制概述 React 的调度机制通过 Fiber 架构 和 Scheduler 模块实现任务优先级管理与时间切片(Time Slicing),确保高优先级更新(如用户交互)能快速响应,…