Tooltip文字提示

简单的文字提示气泡框。

何时使用#

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

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

代码演示

Tooltip will show on mouse enter.

最简单的用法。

expand codeexpand code
import { Tooltip } from 'infrad';
import React from 'react';

const App: React.FC = () => (
  <Tooltip title="prompt text">
    <span>Tooltip will show on mouse enter.</span>
  </Tooltip>
);

export default App;

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

expand codeexpand code
import { Button, Tooltip } from 'infrad';
import React from 'react';

const App: React.FC = () => (
  <>
    <Tooltip placement="topLeft" title="Prompt Text">
      <Button>Align edge / 边缘对齐</Button>
    </Tooltip>
    <Tooltip placement="topLeft" title="Prompt Text" arrowPointAtCenter>
      <Button>Arrow points to center / 箭头指向中心</Button>
    </Tooltip>
  </>
);

export default App;

位置有 12 个方向。

expand codeexpand code
import { Button, Tooltip } from 'infrad';
import React from 'react';

const text = <span>prompt text</span>;

const buttonWidth = 70;

const App: React.FC = () => (
  <div className="demo">
    <div style={{ marginLeft: buttonWidth, whiteSpace: 'nowrap' }}>
      <Tooltip placement="topLeft" title={text}>
        <Button>TL</Button>
      </Tooltip>
      <Tooltip placement="top" title={text}>
        <Button>Top</Button>
      </Tooltip>
      <Tooltip placement="topRight" title={text}>
        <Button>TR</Button>
      </Tooltip>
    </div>
    <div style={{ width: buttonWidth, float: 'left' }}>
      <Tooltip placement="leftTop" title={text}>
        <Button>LT</Button>
      </Tooltip>
      <Tooltip placement="left" title={text}>
        <Button>Left</Button>
      </Tooltip>
      <Tooltip placement="leftBottom" title={text}>
        <Button>LB</Button>
      </Tooltip>
    </div>
    <div style={{ width: buttonWidth, marginLeft: buttonWidth * 4 + 24 }}>
      <Tooltip placement="rightTop" title={text}>
        <Button>RT</Button>
      </Tooltip>
      <Tooltip placement="right" title={text}>
        <Button>Right</Button>
      </Tooltip>
      <Tooltip placement="rightBottom" title={text}>
        <Button>RB</Button>
      </Tooltip>
    </div>
    <div style={{ marginLeft: buttonWidth, clear: 'both', whiteSpace: 'nowrap' }}>
      <Tooltip placement="bottomLeft" title={text}>
        <Button>BL</Button>
      </Tooltip>
      <Tooltip placement="bottom" title={text}>
        <Button>Bottom</Button>
      </Tooltip>
      <Tooltip placement="bottomRight" title={text}>
        <Button>BR</Button>
      </Tooltip>
    </div>
  </div>
);

export default App;

我们添加了多种预设色彩的文字提示样式,用作不同场景使用。

expand codeexpand code
import { Button, Divider, Tooltip } from 'infrad';
import React from 'react';

const colors = [
  'pink',
  'red',
  'yellow',
  'orange',
  'cyan',
  'green',
  'blue',
  'purple',
  'geekblue',
  'magenta',
  'volcano',
  'gold',
  'lime',
];
const customColors = ['#f50', '#2db7f5', '#87d068', '#108ee9'];

const App: React.FC = () => (
  <>
    <Divider orientation="left">Presets</Divider>
    <div>
      {colors.map(color => (
        <Tooltip title="prompt text" color={color} key={color}>
          <Button>{color}</Button>
        </Tooltip>
      ))}
    </div>
    <Divider orientation="left">Custom</Divider>
    <div>
      {customColors.map(color => (
        <Tooltip title="prompt text" color={color} key={color}>
          <Button>{color}</Button>
        </Tooltip>
      ))}
    </div>
  </>
);

export default App;
.ant-tag {
  margin-bottom: 8px;
}

API#

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

共同的 API#

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

参数说明类型默认值版本
align该值将合并到 placement 的配置中,设置参考 rc-tooltipobject-
arrowPointAtCenter箭头是否指向目标元素中心booleanfalse
autoAdjustOverflow气泡被遮挡时自动调整位置booleantrue
color背景颜色string-4.3.0
defaultVisible默认是否显隐booleanfalse
destroyTooltipOnHide关闭后是否销毁 Tooltip,当 keepParentfalse 时销毁父容器boolean | { keepParent?: boolean }false
getPopupContainer浮层渲染父节点,默认渲染到 body 上function(triggerNode)() => document.body
mouseEnterDelay鼠标移入后延时多少才显示 Tooltip,单位:秒number0.1
mouseLeaveDelay鼠标移出后延时多少才隐藏 Tooltip,单位:秒number0.1
overlayClassName卡片类名string-
overlayStyle卡片样式object-
overlayInnerStyle卡片内容区域的样式对象object-
placement气泡框位置,可选 top left right bottom topLeft topRight bottomLeft bottomRight leftTop leftBottom rightTop rightBottomstringtop
trigger触发行为,可选 hover | focus | click | contextMenu,可使用数组设置多个触发行为string | string[]hover
visible用于手动控制浮层显隐booleanfalse
zIndex设置 Tooltip 的 z-indexnumber-
onVisibleChange显示隐藏的回调(visible) => void-

注意#

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