# @beisen-phoenix/tooltip

> 简单的文字提示气泡框。

Latest version **3.3.55** (published 2019-11-25) · ISC license · 0 weekly downloads

## Install

```sh
npm install @beisen-phoenix/tooltip
pnpm add @beisen-phoenix/tooltip
yarn add @beisen-phoenix/tooltip
bun add @beisen-phoenix/tooltip
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.3.55 |
| Published | 2019-11-25 |
| First published | 2019-02-26 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 96.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | beisencorp |

## Links

- npm: https://www.npmjs.com/package/@beisen-phoenix/tooltip
- npm.io page: https://npm.io/package/@beisen-phoenix/tooltip

## Dependencies (2)

- [rc-tooltip](https://npm.io/package/rc-tooltip.md) ^3.7.3
- [@beisen-phoenix/style-token](https://npm.io/package/@beisen-phoenix/style-token.md) ^3.3.55

## Recent versions

- 3.3.55 (latest) — 2019-11-25
- 3.2.44-rc.1 (rc) — 2019-10-24
- 3.3.54 — 2019-11-25
- 3.3.53 — 2019-11-25
- 3.3.52 — 2019-11-24
- 3.3.51 — 2019-11-23
- 3.3.50 — 2019-11-22
- 3.3.49 — 2019-11-22
- 3.3.48 — 2019-11-22
- 3.3.47 — 2019-11-22
- 3.3.46 — 2019-11-22
- 3.3.45 — 2019-11-21
- 3.3.43 — 2019-11-21
- 3.3.42 — 2019-11-21
- 3.3.41-beta.1 — 2019-11-21
- … 383 more at https://npm.io/package/@beisen-phoenix/tooltip/versions

## README

简单的文字提示气泡框。  

## 概述

鼠标移入则显示提示的简单气泡浮层，应用于显示简单的文字提示，不承载复杂文本和操作。  
可用来代替浏览器默认的 `title` 属性。

## API

| 参数 | 说明 | 类型 | 默认值 |
| --- | --- | --- | --- |
| title | 提示文字，配合isHTMLContent可以支持html格式。 | string | 无 |
| extraCls | 自定义的容器class,一般通过此class来实现自定义样式 | string | 无 | 
| isHTMLContent | 是否提示文字为html，如果置为true则正文会被当做html识别，同时会有xss潜在风险。 | boolean | `false` |
| showOverflowTooltip | 根据文本是否打点来决定是否展示Tooltip，注意此时节点需要是仅有一层标签包裹的纯文本才能正确计算，详情请见样例。 | boolean | `false` |
| destroyTooltipOnHide | 是否在tooltip隐藏时销毁dom节点 | boolean | `false` |
| arrowPointAtCenter | 箭头是否指向目标元素中心 | boolean | `true` |
| autoAdjustOverflow | 气泡被遮挡时自动调整位置 | boolean | `true` |
| defaultVisible | 默认是否显隐 | boolean | `false` |
| getTooltipContainer | 浮层渲染父节点，默认渲染到 body 上 | Function(triggerNode) | () => document.body |
| 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` | string | hover |
| visible | 用于手动控制浮层显隐 | boolean | `false` |
| onVisibleChange | 显示隐藏的回调 | (visible) => void | 无 |
| align | 该值将合并到 placement 的配置中，设置参考 [rc-tooltip](https://github.com/react-component/tooltip) | Object | 无 |
| maxWidth | 蒙层的最大宽度 | number | 无 |

## 注意

请确保 `Tooltip` 的子元素能接受 `onMouseEnter`、`onMouseLeave`、`onFocus`、`onClick` 事件。

## 一点碎碎念

- 整体思路来自 antdesign/tooltip，封装了rc-tooltip并在此基础上做了一些自动计算的处理。  
- 当横向超过一屏时，max-width的元素显示会无法维持自身的宽度，造成内塌陷，目前采用的解决方案是在初始化时使用临时的 div存放文字，取实际宽度设置给该元素，如果有更好的方案请反馈给我，  
- 没有设置title时，默认会以当前节点内的文字进行赋值  
- autoAdjustOverflow仅支持在文档边缘时触发，如果是滚动条滚动后遮住的情况，并不会进行调整。  
- showOverflowTooltip判断文本是否打点的逻辑是：取当前节点的scrollWidth和clientWidth，如果scrollWidth大于clientWidth，则为打点状态，其他情况为非打点状态。组件会根据该状态自动判断是否需要显示 tooltip。注意：出于性能考虑，此情况下文本内容仅会在初始化时取值一次，后续文本节点变更都不会同步。  
- 由于当元素从左侧超出界面之外时，rc的自适应逻辑会导致箭头方向错误，此处不得不使用额外计算逻辑来处理，这里可能会有bug。
- 由下向上连续触发tooltip不消失的问题，可以使用mouseLeaveDelay参数设置为0来解决

---
_Source: https://npm.io/package/@beisen-phoenix/tooltip · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
