0.3.5 • Published 2 months ago

@alifd/overlay v0.3.5

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

弹层

@alifd/overlay

用于生成弹层的工具类集合。

如何使用

Overlay 提供了一系列组件用于创建弹层。其中包含:

Overlay

Overlay 可以在页面中弹出一个浮层,封装了定位,动画及其他一些可用性的功能。Overlay 被设计为无状态的组件,其本身并不控制自己显示和隐藏的状态。

注意: 类似 canCloseby* 的配置也需要配合 onRequestClose 才能关闭弹层。

安全节点 safeNode

Overlay 提供了点击弹层外文档中节点隐藏该弹层的功能,如果想让某个节点点击后不隐藏弹层(如:触发弹层打开的节点),请将该节点传入 safeNode 属性。

定位

  1. points 的值可以是由空格隔开的字符串,如 ['tl', 'bl'],其中 tl 代表目标元素的左上方,bl 代表基准元素的左下方,所以 ['tl', 'bl'] 的意思是目标元素的左上方对齐基准元素左下方。其中定位的可选值有 tl, tc, tr, cl, cc, cr, bl, bc, brttop 的缩写,bbottom 的缩写,ccenter 的缩写,lleft 的缩写,rright 的缩写.

Popup

Popup 是对 Overlay 的封装,children作为触发节点,弹出一个浮层,这个浮层默认情况下使用这个节点作为定位的参照对象。

API

Overlay

参数说明类型默认值
children弹层内容ReactElement-
visible是否显示弹层Booleanfalse
onRequestClose弹层请求关闭时触发事件的回调函数Function() => {}
target弹层定位的参照元素Function()=> document.body
points弹层相对于参照元素的定位point, point'tl', 'bl'
placement部分points的简写模式可选值:'t'(上,对应 points: 'bc', 'tc')'r'(右,对应 points: 'lc', 'rc')'b'(下,对应 points: 'tc', 'bc')'l'(左,对应 points: 'rc', 'lc')'tl'(上左,对应 points: 'bl', 'tl')'tr'(上右,对应 points: 'br', 'tr')'bl'(下左,对应 points: 'tl', 'bl')'br'(下右,对应 points: 'tr', 'br')'lt'(左上,对应 points: 'rt', 'lt')'lb'(左下,对应 points: 'rb', 'lb')'rt'(右上,对应 points: 'lt', 'rt')'rb'(右下,对应 points: 'lb', 'rb')Enum'bl'
offset弹层相对于trigger的定位的微调, 接收数组hoz, ver, 表示弹层在 left / top 上的增量e.g. 100, 100 表示往右、下分布偏移100pxArray0, 0
container渲染组件的容器,如果是函数需要返回 ref,如果是字符串则是该 DOM 的 id,也可以直接传入 DOM 节点any-
hasMask是否显示遮罩Booleanfalse
canCloseByEsc是否支持 esc 按键关闭弹层Booleantrue
canCloseByOutSideClick点击弹层外的区域是否关闭弹层,不显示遮罩时生效Booleantrue
canCloseByMask点击遮罩区域是否关闭弹层,显示遮罩时生效Booleantrue
onOpen弹层打开时触发事件的回调函数Functionnoop
onClose弹层关闭时触发事件的回调函数Functionnoop
beforePosition弹层定位完成前触发的事件Functionnoop
onPosition弹层定位完成时触发的事件签名:Function(config: Object) => void参数:config: {Object} 定位的参数config.config.points: {Array} 对齐方式,如 'cc', 'cc'(如果开启 needAdjust,可能和预先设置的 points 不同)config.style.top: {Number} 距离视口顶部距离config.style.left: {Number} 距离视口左侧距离Functionnoop
autoFocus弹层打开时是否让其中的元素自动获取焦点Booleanfalse
autoAdjust当弹层由于页面滚动等情况不在可视区域时,是否自动调整定位以出现在可视区域Booleantrue
autoHideScrollOverflow当trigger外面有滚动条,滚动到不可见区域后隐藏弹窗Booleantrue
cache隐藏时是否保留子节点Booleanfalse
safeNode安全节点,当点击 document 的时候,如果包含该节点则不会关闭弹层,如果是函数需要返回 ref,如果是字符串则是该 DOM 的 id,也可以直接传入 DOM 节点,或者以上值组成的数组any-
wrapperClassName弹层的根节点的样式类String-
wrapperStyle弹层的根节点的内联样式Object-

Overlay.Popup

继承 Overlay 的 API,除非特别说明

参数说明类型默认值
children触发弹层显示或隐藏的元素ReactNode-
overlay弹层内容ReactElement-
triggerType触发弹层显示或隐藏的操作类型,可以是 'click','hover','focus',或者它们组成的数组,如 'hover', 'focus'String/Array'hover'
triggerClickKeycode当 triggerType 为 click 时才生效,可自定义触发弹层显示的键盘码Number/ArrayKEYCODE.SPACE, KEYCODE.ENTER
visible弹层当前是否显示Boolean-
defaultVisible弹层默认是否显示Booleanfalse
onVisibleChange弹层显示或隐藏时触发的回调函数签名:Function(visible: Boolean, type: String, e: Object) => void参数:visible: {Boolean} 弹层是否显示type: {String} 触发弹层显示或隐藏的来源 fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发e: {Object} DOM事件Functionnoop
disabled设置此属性,弹层无法显示或隐藏Booleanfalse
delay弹层显示或隐藏的延时时间(以毫秒为单位),在 triggerType 被设置为 hover 时生效Number200
followTrigger是否跟随trigger滚动Booleanfalse
0.3.5

2 months ago

0.3.4

2 months ago

0.3.3

4 months ago

0.3.0

6 months ago

0.3.2

5 months ago

0.3.1

5 months ago

0.2.13

6 months ago

0.2.11-beta

2 years ago

0.2.12

2 years ago

0.2.11

2 years ago

0.2.10

2 years ago

0.2.7

2 years ago

0.2.6

2 years ago

0.2.9

2 years ago

0.2.8

2 years ago

0.2.5

2 years ago

0.2.4

2 years ago

0.1.15

2 years ago

0.1.20

2 years ago

0.1.21

2 years ago

0.1.22

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.16

2 years ago

0.1.17

2 years ago

0.1.18

2 years ago

0.1.19

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.1.12

3 years ago

0.1.14

3 years ago

0.1.10

3 years ago

0.1.11

3 years ago

0.1.8

3 years ago

0.1.9

3 years ago

0.1.7

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.2

3 years ago

0.1.3

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago