npm.io
3.3.55 • Published 6 years ago

@beisen-phoenix/tooltip

Licence
ISC
Version
3.3.55
Deps
2
Size
96 kB
Vulns
0
Weekly
0

简单的文字提示气泡框。

概述

鼠标移入则显示提示的简单气泡浮层,应用于显示简单的文字提示,不承载复杂文本和操作。
可用来代替浏览器默认的 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 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来解决