Tooltip 文字提示
简单的文字提示气泡框。
何时使用
鼠标移入则显示提示,移出消失,气泡浮层不承载复杂文本和操作。
可用来代替系统默认的 title
提示,提供一个按钮/文字/操作
的文案解释。
代码演示
基本
最简单的用法。
import React from 'react';
import ReactDOM from 'react-dom';
import { Tooltip } from 'choerodon-ui/pro';
ReactDOM.render(
<Tooltip title="prompt text" theme="light">
<span>Tooltip will show when mouse enter.</span>
</Tooltip>,
document.getElementById('container'));
位置
位置有 12 个方向。
目前 left 和 top 类的位置有首次渲染错位的 bug,right 和 bottom 可以正常使用。
import React from 'react';
import ReactDOM from 'react-dom';
import { Tooltip, Button } from 'choerodon-ui/pro';
const text = <span>prompt text</span>;
const buttonWidth = 70;
ReactDOM.render(
<div className="demo">
<div style={{ marginLeft: buttonWidth, whiteSpace: 'nowrap' }}>
<Tooltip placement="topLeft" title={text} theme="light">
<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 style={{ marginLeft: 10 }}>LT</Button>
</Tooltip>
<Tooltip placement="left" title={text} theme="light">
<Button>Left</Button>
</Tooltip>
<Tooltip placement="leftBottom" title={text}>
<Button>LB</Button>
</Tooltip>
</div>
<div style={{ width: buttonWidth, marginLeft: buttonWidth * 3 + 26 }}>
<Tooltip placement="rightTop" title={text} theme="light">
<Button style={{ marginLeft: 10 }}>RT</Button>
</Tooltip>
<Tooltip placement="right" title={text}>
箭头指向
设置了 arrowPointAtCenter
后,箭头将指向目标元素的中心。
import React from 'react';
import ReactDOM from 'react-dom';
import { Tooltip, Button } from 'choerodon-ui/pro';
ReactDOM.render(
<div>
<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>
</div>,
document.getElementById('container'));
受控
通过hidden
属性控制Tooltip的行为。
设置hidden
属性后,将不再监听鼠标悬浮等事件,Tooltip
的显示与否完全取决于hidden
属性。此特性可用于编程控制错误信息的显示。
import React from 'react';
import ReactDOM from 'react-dom';
import { Tooltip, Button } from 'choerodon-ui/pro';
class Demo extends React.Component {
state = {
hidden: true,
};
handleOpen = () => {
this.setState({
hidden: false,
});
};
handleClose = () => {
this.setState({
hidden: true,
});
};
render() {
return (
<div>
<Button onClick={this.handleOpen}>Open</Button>
<Button onClick={this.handleClose} color="red">
Close
</Button>
<Tooltip hidden={this.state.hidden} title="Prompt Text">
主题
通过theme
属性控制Tooltip的主题颜色。
显示红色错误信息时,建议使用亮色主题。
import React from 'react';
import ReactDOM from 'react-dom';
import { Tooltip, Button, Icon } from 'choerodon-ui/pro';
class Demo extends React.Component {
state = {
theme: 'dark',
};
handleLighten = () => {
this.setState({
theme: 'light',
});
};
handleDarken = () => {
this.setState({
theme: 'dark',
});
};
render() {
return (
<div>
<Button onClick={this.handleLighten}>Light</Button>
<Button onClick={this.handleDarken} color="dark">
Dark
</Button>
<Tooltip
API
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
title | 提示文字 | string|ReactNode|() => ReactNode |
共同的 API
以下 API 为 Tooltip、Popconfirm、Popover 共享的 API。
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
arrowPointAtCenter | 箭头是否指向目标元素中心 | boolean | false |
autoAdjustOverflow | 气泡被遮挡时自动调整位置 | boolean | true |
defaultHidden | 默认是否显隐 | boolean | true |
mouseEnterDelay | 鼠标移入后延时多少才显示 Tooltip,单位:秒 | number | 0 |
mouseLeaveDelay | 鼠标移出后延时多少才隐藏 Tooltip,单位:秒 | number | 0.1 |
overlayClassName | 卡片类名 | string | |
overlayStyle | 卡片样式 | object | |
placement | 气泡框位置,可选 top left right bottom topLeft topRight bottomLeft bottomRight leftTop leftBottom rightTop rightBottom | string | top |
trigger | 触发行为,可选 hover/focus/click/contextMenu | string | hover |
hidden | 用于手动控制浮层显隐 | boolean | true |
onHiddenChange | 显示隐藏的回调 | (hidden) => void |
注意
请确保 Tooltip
的子元素能接受 onMouseEnter
、onMouseLeave
、onFocus
、onClick
事件。
当前内容版权归 Choerodon UI 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 Choerodon UI .