当前位置:首页 > 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 等属性调整位置和样式:

<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 内容:

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 属性:

react tooltip 实现

<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 native

如何评价react native

React Native 的优势 跨平台开发效率高:基于 JavaScript 和 React 语法,可同时开发 iOS 和 Android 应用,减少重复代码量。性能接近原生:通过原生组件渲染,性能…

react如何读

react如何读

React 的发音 React 的发音为 /riˈækt/(音标),读作“瑞-艾克特”。其中: “Re” 发音类似英文单词 “read” 的开头部分。 “act” 发音与英文单词 “act” 一…

react如何通信

react如何通信

React 组件通信方式 React 组件间的通信方式多样,具体选择取决于组件关系和场景需求。以下是常见方法: 父子组件通信 父组件通过 props 向子组件传递数据,子组件通过回调函数通知父组件…

react 如何操作cookie

react 如何操作cookie

安装依赖 在React项目中操作cookie通常需要第三方库的支持,推荐使用js-cookie。通过npm或yarn安装: npm install js-cookie # 或 yarn add js…

react如何获取光标

react如何获取光标

获取光标位置的方法 在React中获取光标位置通常涉及处理输入框或文本区域的onChange或onSelect事件。以下是几种常见的方法: 通过selectionStart和selectionEnd…

react如何上传文件

react如何上传文件

使用React上传文件的方法 使用HTML的input元素和FormData 创建一个文件输入字段,通过onChange事件获取文件对象,使用FormData将文件数据发送到服务器。 import…