弹层控件ui/popup
所有弹层控件的抽象基类。
基本用法
在任意元素后添加 <Popup />
即可为该元素添加点击后显示的弹层。
import { VNode, render } from "ui/control";
import Popup from "ui/popup";
render(
__root__,
<div>
<button>按钮</button>
<Popup>我是弹层</Popup>
</div>
);
箭头
设置 arrow=true
可显示箭头。箭头样式参考箭头。
import { VNode, render } from "ui/control";
import Popup from "ui/popup";
render(
__root__,
<div>
<button>按钮</button>
<Popup arrow={true}>我是弹层</Popup>
</div>
);
弹层事件
使用 event
设置显示弹层的事件名。
import { VNode, render } from "ui/control";
import Popup from "ui/popup";
render(
__root__,
<div>
<button>按钮</button>
<Popup event="pointerenter">我是弹层</Popup>
</div>
);
另参考
API
Popup 类
继承自:Control
表示一个弹层。
字段 | 类型 | 描述 | 继承自 |
---|---|---|---|
⮞
target
: HTMLElement
触发弹层显示的元素。 |
HTMLElement
|
触发弹层显示的元素。 |
— |
⮞
event
: "click" | "focus" | "dblclick" | "auxclick" | "contextmenu" | "pointerdown" | "pointerup" | "pointerenter" | "pointermove" | "hover" | "active" | "focusin" = "click"
触发弹层显示的事件。 说明
|
string
|
触发弹层显示的事件。 |
— |
⮞
delay
: number = 100
显示弹层的延时毫秒数。仅对指针移动事件有效。 |
number
|
显示弹层的延时毫秒数。仅对指针移动事件有效。 |
— |
⮞
pinTarget
: HTMLElement | Document | Rect = target
弹层对齐的目标节点或区域。 |
HTMLElement | Document | Rect
|
弹层对齐的目标节点或区域。 |
— |
⮞
align
: PinAlign = "bottomLeft"
弹层对齐的位置。如果为 null 则不自动对齐。 |
PinAlign
|
弹层对齐的位置。如果为 null 则不自动对齐。 |
— |
⮞
margin
: number = 0
元素的外边距,即对齐时元素和 pinTarget 的距离。 |
number
|
元素的外边距,即对齐时元素和 pinTarget 的距离。 |
— |
⮞
container
: HTMLElement | Document = document
容器节点或区域,定位超出容器后会自动调整。 |
HTMLElement | Document
|
容器节点或区域,定位超出容器后会自动调整。 |
— |
⮞
containerPadding
: number = 0
容器的内边距。 |
number
|
容器的内边距。 |
— |
⮞
offset
: number = 0
定位后的额外偏移距离。如果小于 1,则表示相对元素大小的百分比。 |
number
|
定位后的额外偏移距离。如果小于 1,则表示相对元素大小的百分比。 |
— |
⮞
resize
: boolean = false
如果容器比元素小,是否允许更改元素大小。 |
boolean
|
如果容器比元素小,是否允许更改元素大小。 |
— |
⮞
animation
: ToggleAnimation = "opacity"
显示弹层时使用的动画。 |
ToggleAnimation
|
显示弹层时使用的动画。 |
— |
⮞
hideAnimation
: ToggleAnimation = animation
隐藏弹层时使用的动画。 |
ToggleAnimation
|
隐藏弹层时使用的动画。 |
— |
⮞
hideDuration
: number = duration
隐藏动画的持续毫秒数。 |
number
|
隐藏动画的持续毫秒数。 |
— |
⮞
timingFunction
: string = "ease-in"
显示弹层时使用的动画渐变函数。 |
string
|
显示弹层时使用的动画渐变函数。 |
— |
⮞
hideTimingFunction
: string = timingFunction
隐藏弹层时使用的动画渐变函数。 |
string
|
隐藏弹层时使用的动画渐变函数。 |
— |
⮞
autoHide
: boolean = true
是否在点击屏幕空白处后消失。 |
boolean
|
是否在点击屏幕空白处后消失。 |
— |
⮞
autoScroll
: boolean = true
是否在滚动后自动重定位。 |
boolean
|
是否在滚动后自动重定位。 |
— |
⮞
onShow
: (sender: Popup) => void
弹层显示事件。 |
function
|
弹层显示事件。 |
— |
⮞
onHide
: (sender: Popup) => void
弹层隐藏事件。 |
function
|
弹层隐藏事件。 |
— |
⮞
onAlign
: (r: PinResult, sender: Popup) => void
弹层对齐事件。 |
function
|
弹层对齐事件。 |
— |
⮞
disabled
: boolean
是否禁用弹窗效果。 |
boolean
|
是否禁用弹窗效果。 |
— |
⮞
arrow
: boolean
是否显示箭头。 |
boolean
|
是否显示箭头。 |
— |
⮞
arrowOffset
: number
箭头指向位置偏移。如果小于 1 则表示相对于定位目标元素的偏移。 |
number
|
箭头指向位置偏移。如果小于 1 则表示相对于定位目标元素的偏移。 |
— |
⮞
readyState
: ControlState
|
ControlState
|
获取当前控件的渲染状态。 |
Control |
⮞
elem
: HTMLElement
|
HTMLElement
|
关联的元素。 |
Control |
⮞
vNode
: VNode
|
VNode
|
(保护的)获取当前控件关联的虚拟节点。 |
Control |
⮞
sourceVNode
: VNode
|
VNode
|
获取创建该控件使用的源虚拟节点。 |
Control |
⮞
alwaysUpdate
: boolean
|
boolean
|
控件是否使用主动更新模式。 |
Control |
⮞
body
: HTMLElement
|
HTMLElement
|
(只读)获取用于包含子控件和节点的根元素。 |
Control |
⮞
duration
: number = 200
|
number
|
渐变的持续毫秒数。如果为 0 则不使用渐变。 |
Control |
⮞
class
: string
|
string
|
CSS 类名。 |
Control |
⮞
style
: string | { [key: string]: string | number; }
|
string | object
|
控件样式。 |
Control |
⮞
id
: string
|
string
|
控件序号。 |
Control |
⮞
content
: NodeLike
|
NodeLike
|
控件内容。 |
Control |
⮞
onSelectStart
: (e: Event, sender: Popup) => void
|
function
|
选择开始事件。 |
Control |
⮞
onClick
: (e: MouseEvent, sender: Popup) => void
|
function
|
点击事件。 |
Control |
⮞
onAuxClick
: (e: MouseEvent, sender: Popup) => void
|
function
|
中键点击事件。 |
Control |
⮞
onDblClick
: (e: MouseEvent, sender: Popup) => void
|
function
|
双击事件。 |
Control |
⮞
onContextMenu
: (e: PointerEvent, sender: Popup) => void
|
function
|
右键菜单事件。 |
Control |
⮞
onMouseDown
: (e: MouseEvent, sender: Popup) => void
|
function
|
鼠标按下事件。 |
Control |
⮞
onMouseUp
: (e: MouseEvent, sender: Popup) => void
|
function
|
鼠标按上事件。 |
Control |
⮞
onMouseOver
: (e: MouseEvent, sender: Popup) => void
|
function
|
鼠标移入事件。 |
Control |
⮞
onMouseOut
: (e: MouseEvent, sender: Popup) => void
|
function
|
鼠标移开事件。 |
Control |
⮞
onMouseEnter
: (e: MouseEvent, sender: Popup) => void
|
function
|
鼠标进入事件。 |
Control |
⮞
onMouseLeave
: (e: MouseEvent, sender: Popup) => void
|
function
|
鼠标离开事件。 |
Control |
⮞
onMouseMove
: (e: MouseEvent, sender: Popup) => void
|
function
|
鼠标移动事件。 |
Control |
⮞
onWheel
: (e: WheelEvent, sender: Popup) => void
|
function
|
鼠标滚轮事件。 |
Control |
⮞
onScroll
: (e: UIEvent, sender: Popup) => void
|
function
|
滚动事件。 |
Control |
⮞
onTouchStart
: (e: TouchEvent, sender: Popup) => void
|
function
|
触摸开始事件。 |
Control |
⮞
onTouchMove
: (e: TouchEvent, sender: Popup) => void
|
function
|
触摸移动事件。 |
Control |
⮞
onTouchEnd
: (e: TouchEvent, sender: Popup) => void
|
function
|
触摸结束事件。 |
Control |
⮞
onTouchCancel
: (e: TouchEvent, sender: Popup) => void
|
function
|
触摸撤销事件。 |
Control |
⮞
onPointerEnter
: (e: PointerEvent, sender: Popup) => void
|
function
|
指针进入事件。 |
Control |
⮞
onPointerLeave
: (e: PointerEvent, sender: Popup) => void
|
function
|
指针离开事件。 |
Control |
⮞
onPointerOver
: (e: PointerEvent, sender: Popup) => void
|
function
|
指针移入事件。 |
Control |
⮞
onPointerOut
: (e: PointerEvent, sender: Popup) => void
|
function
|
指针移开事件。 |
Control |
⮞
onPointerDown
: (e: PointerEvent, sender: Popup) => void
|
function
|
指针按下事件。 |
Control |
⮞
onPointerMove
: (e: PointerEvent, sender: Popup) => void
|
function
|
指针移动事件。 |
Control |
⮞
onPointerUp
: (e: PointerEvent, sender: Popup) => void
|
function
|
指针松开事件。 |
Control |
⮞
onPointerCancel
: (e: PointerEvent, sender: Popup) => void
|
function
|
指针取消事件。 |
Control |
⮞
onGotPointerCapture
: (e: PointerEvent, sender: Popup) => void
|
function
|
指针开始捕获事件。 |
Control |
⮞
onLostPointerCapture
: (e: PointerEvent, sender: Popup) => void
|
function
|
指针停止捕获事件。 |
Control |
方法 | 描述 | 继承自 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
⮞
show()():
显示当前弹层。 返回值类型: |
显示当前弹层。 |
— | ||||||||||||||||||||||||||||
⮞
hide()():
隐藏当前弹层。 返回值类型: |
隐藏当前弹层。 |
— | ||||||||||||||||||||||||||||
⮞
toggle(...)(value?:
切换显示或隐藏当前弹层。
返回值类型: |
切换显示或隐藏当前弹层。 |
— | ||||||||||||||||||||||||||||
⮞
realign()():
|
重新对齐弹层的位置。 |
— | ||||||||||||||||||||||||||||
⮞
handleDocumentPointerDown(e)(e:
(保护的)处理文档指针按下事件。
返回值类型: |
(保护的)处理文档指针按下事件。 |
— | ||||||||||||||||||||||||||||
⮞
handleDocumentScroll(e)(e:
(保护的)处理文档滚动事件。
返回值类型: |
(保护的)处理文档滚动事件。 |
— | ||||||||||||||||||||||||||||
⮞
render()():
|
(保护的)(已覆盖)当被子类重写时负责返回当前控件的虚拟节点。 |
Control |
||||||||||||||||||||||||||||
⮞
layout()():
|
(已覆盖)重新布局当前控件。 |
Control |
||||||||||||||||||||||||||||
⮞
init()():
|
(保护的)当被子类重写时负责在关联元素后初始化当前控件。 |
Control |
||||||||||||||||||||||||||||
⮞
uninit()():
|
(保护的)当被子类重写时负责在元素被取消关联前取消初始化当前控件。 |
Control |
||||||||||||||||||||||||||||
⮞
update()():
|
重新渲染当前控件。 |
Control |
||||||||||||||||||||||||||||
⮞
invalidate()():
|
使当前控件无效并在下一帧重新渲染。 |
Control |
||||||||||||||||||||||||||||
⮞
renderTo(parent, ...)(parent:
|
将当前控件渲染到指定的父控件或节点。 |
Control |
||||||||||||||||||||||||||||
⮞
find(selector)(selector:
|
在当前控件查找指定的子控件或节点。 |
Control |
||||||||||||||||||||||||||||
⮞
query(selector)(selector:
|
在当前控件查找匹配的所有子控件或节点。 |
Control |
||||||||||||||||||||||||||||
⮞
Popup.create(elem, target, ...)(elem:
创建一个弹层。
返回值类型: 返回创建的弹层对象。 |
创建一个弹层。 |
— |