背景

Floating-UI 是一个库,可帮助您创建“浮动”元素,例如工具提示、弹出框、下拉列表等。
简而言之就是可以通过
floating-ui
去关联 DOM
节点去很好的管理弹窗类、浮层类组件,从而你无需再去关注边缘判断、滚动冲突等常见浮动问题。那么,如何开始呢?首先需要在项目中安装
floating-ui
:然后就可以开始我们的旅程了。
构思
首先我们需要明确一个
Tooltip
组件的预期功能是什么样的。
- 鼠标
hover
到指定元素上,弹出提示内容,一般来说,内容里面是一段文本。
也有很多是在展示富文本,但是很少见在Tooltip
中去展示复杂类型内容的,如果是复杂类型,其实就得考虑换交互组件了,而不是强堆。我们在这里只需要支持用户去传递React.Element
即可。
- 被指定元素可以是任何元素。
- 弹出层需要解决边缘判断、滚动冲突等问题。
这个就是我们今天的主角floating-ui
来发挥作用了。
开发
在开发之前可以先去阅读官方给出的两个
Demo
伪代码
在这里我们支持了一个
title
属性来接收用户传递进来需要展示在 Tooltip
中的内容, Children
用来表示被指定的元素。真实代码
到这里就全部实现啦~
