Tooltip 文字提示

简单的文字提示气泡框。

何时使用

鼠标移入则显示提示,移出消失,气泡浮层不承载复杂文本和操作。

可用来代替系统默认的 title 提示,提供一个按钮/文字/操作的文案解释。

代码演示

基本

最简单的用法。

Tooltip文字提示 - 图1

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import { Tooltip } from 'choerodon-ui/pro';
  4. ReactDOM.render(
  5. <Tooltip title="prompt text" theme="light">
  6. <span>Tooltip will show when mouse enter.</span>
  7. </Tooltip>,
  8. document.getElementById('container'));

位置

位置有 12 个方向。

目前 left 和 top 类的位置有首次渲染错位的 bug,right 和 bottom 可以正常使用。

Tooltip文字提示 - 图2

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import { Tooltip, Button } from 'choerodon-ui/pro';
  4. const text = <span>prompt text</span>;
  5. const buttonWidth = 70;
  6. ReactDOM.render(
  7. <div className="demo">
  8. <div style={{ marginLeft: buttonWidth, whiteSpace: 'nowrap' }}>
  9. <Tooltip placement="topLeft" title={text} theme="light">
  10. <Button>TL</Button>
  11. </Tooltip>
  12. <Tooltip placement="top" title={text}>
  13. <Button>Top</Button>
  14. </Tooltip>
  15. <Tooltip placement="topRight" title={text}>
  16. <Button>TR</Button>
  17. </Tooltip>
  18. </div>
  19. <div style={{ width: buttonWidth, float: 'left' }}>
  20. <Tooltip placement="leftTop" title={text}>
  21. <Button style={{ marginLeft: 10 }}>LT</Button>
  22. </Tooltip>
  23. <Tooltip placement="left" title={text} theme="light">
  24. <Button>Left</Button>
  25. </Tooltip>
  26. <Tooltip placement="leftBottom" title={text}>
  27. <Button>LB</Button>
  28. </Tooltip>
  29. </div>
  30. <div style={{ width: buttonWidth, marginLeft: buttonWidth * 3 + 26 }}>
  31. <Tooltip placement="rightTop" title={text} theme="light">
  32. <Button style={{ marginLeft: 10 }}>RT</Button>
  33. </Tooltip>
  34. <Tooltip placement="right" title={text}>

箭头指向

设置了 arrowPointAtCenter 后,箭头将指向目标元素的中心。

Tooltip文字提示 - 图3

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import { Tooltip, Button } from 'choerodon-ui/pro';
  4. ReactDOM.render(
  5. <div>
  6. <Tooltip placement="topLeft" title="Prompt Text">
  7. <Button>Align edge / 边缘对齐</Button>
  8. </Tooltip>
  9. <Tooltip placement="topLeft" title="Prompt Text" arrowPointAtCenter>
  10. <Button>Arrow points to center / 箭头指向中心</Button>
  11. </Tooltip>
  12. </div>,
  13. document.getElementById('container'));

受控

通过hidden属性控制Tooltip的行为。

设置hidden属性后,将不再监听鼠标悬浮等事件,Tooltip的显示与否完全取决于hidden属性。此特性可用于编程控制错误信息的显示。

Tooltip文字提示 - 图4

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import { Tooltip, Button } from 'choerodon-ui/pro';
  4. class Demo extends React.Component {
  5. state = {
  6. hidden: true,
  7. };
  8. handleOpen = () => {
  9. this.setState({
  10. hidden: false,
  11. });
  12. };
  13. handleClose = () => {
  14. this.setState({
  15. hidden: true,
  16. });
  17. };
  18. render() {
  19. return (
  20. <div>
  21. <Button onClick={this.handleOpen}>Open</Button>
  22. <Button onClick={this.handleClose} color="red">
  23. Close
  24. </Button>
  25. <Tooltip hidden={this.state.hidden} title="Prompt Text">

主题

通过theme属性控制Tooltip的主题颜色。

显示红色错误信息时,建议使用亮色主题。

Tooltip文字提示 - 图5

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import { Tooltip, Button, Icon } from 'choerodon-ui/pro';
  4. class Demo extends React.Component {
  5. state = {
  6. theme: 'dark',
  7. };
  8. handleLighten = () => {
  9. this.setState({
  10. theme: 'light',
  11. });
  12. };
  13. handleDarken = () => {
  14. this.setState({
  15. theme: 'dark',
  16. });
  17. };
  18. render() {
  19. return (
  20. <div>
  21. <Button onClick={this.handleLighten}>Light</Button>
  22. <Button onClick={this.handleDarken} color="dark">
  23. Dark
  24. </Button>
  25. <Tooltip

API

参数说明类型默认值
title提示文字string|ReactNode|() => ReactNode

共同的 API

以下 API 为 Tooltip、Popconfirm、Popover 共享的 API。

参数说明类型默认值
arrowPointAtCenter箭头是否指向目标元素中心booleanfalse
autoAdjustOverflow气泡被遮挡时自动调整位置booleantrue
defaultHidden默认是否显隐booleantrue
mouseEnterDelay鼠标移入后延时多少才显示 Tooltip,单位:秒number0
mouseLeaveDelay鼠标移出后延时多少才隐藏 Tooltip,单位:秒number0.1
overlayClassName卡片类名string
overlayStyle卡片样式object
placement气泡框位置,可选 top left right bottom topLeft topRight bottomLeft bottomRight leftTop leftBottom rightTop rightBottomstringtop
trigger触发行为,可选 hover/focus/click/contextMenustringhover
hidden用于手动控制浮层显隐booleantrue
onHiddenChange显示隐藏的回调(hidden) => void

注意

请确保 Tooltip 的子元素能接受 onMouseEnteronMouseLeaveonFocusonClick 事件。