Teal TealUI

弹层控件ui/popup

所有弹层控件的抽象基类。

基本用法
箭头
弹层事件
API
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"

触发弹层显示的事件。

说明

  • click(默认): 点击 target 后弹出,点击屏幕空白处消失。
  • dblclick: 双击 target 后弹出,点击屏幕空白处消失。
  • auxclick: 右击 target 后弹出,点击屏幕空白处消失。
  • pointerdown: 指针在 target 按下后弹出,点击屏幕空白处消失。
  • pointerup: 指针在 target 按出后弹出,点击屏幕空白处消失。
  • contextmenu:作为 target 右键菜单后弹出,点击屏幕空白处消失。
  • pointerenter: 指针移入 target 后自动弹出,移到屏幕空白处消失。
  • hover: 指针移入 target 后自动弹出,移出 target 后消失。
  • pointermove: 指针移入 target 后自动弹出,并跟随鼠标移动。
  • active:指针在 target 按下时显示,松开后消失。
  • focustarget 获取焦点后显示,失去焦点后后消失。
  • focusintarget 获取焦点后显示,点击屏幕空白处消失。
  • 其它:不绑定事件。
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 则表示相对于定位目标元素的偏移。

hidden : boolean

(已覆盖)(只读)是否隐藏。

继承自

Control

boolean

(已覆盖)(只读)是否隐藏。

Control
readyState : ControlState

获取当前控件的渲染状态。

继承自

Control

ControlState

获取当前控件的渲染状态。

Control
elem : HTMLElement

关联的元素。

继承自

Control

HTMLElement

关联的元素。

Control
vNode : VNode

(保护的)获取当前控件关联的虚拟节点。

继承自

Control

VNode

(保护的)获取当前控件关联的虚拟节点。

Control
sourceVNode : VNode

获取创建该控件使用的源虚拟节点。

继承自

Control

VNode

获取创建该控件使用的源虚拟节点。

Control
alwaysUpdate : boolean

控件是否使用主动更新模式。

继承自

Control

boolean

控件是否使用主动更新模式。

Control
body : HTMLElement

(只读)获取用于包含子控件和节点的根元素。

继承自

Control

HTMLElement

(只读)获取用于包含子控件和节点的根元素。

Control
duration : number = 200

渐变的持续毫秒数。如果为 0 则不使用渐变。

继承自

Control

number

渐变的持续毫秒数。如果为 0 则不使用渐变。

Control
class : string

CSS 类名。

继承自

Control

string

CSS 类名。

Control
style : string | { [key: string]: string | number; }

控件样式。

继承自

Control

string | object

控件样式。

Control
id : string

控件序号。

继承自

Control

string

控件序号。

Control
content : NodeLike

控件内容。

继承自

Control

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()():void

显示当前弹层。

返回值

类型:void

显示当前弹层。

hide()():void

隐藏当前弹层。

返回值

类型:void

隐藏当前弹层。

toggle(...)(value?:boolean):void

切换显示或隐藏当前弹层。

参数 类型 描述 默认值
value boolean

返回值

类型:void

切换显示或隐藏当前弹层。

realign()():PinResult

重新对齐弹层的位置。

返回值

类型:PinResult

重新对齐弹层的位置。

handleDocumentPointerDown(e)(e:MouseEvent):void

(保护的)处理文档指针按下事件。

参数 类型 描述 默认值
e* MouseEvent

返回值

类型:void

(保护的)处理文档指针按下事件。

handleDocumentScroll(e)(e:MouseEvent):void

(保护的)处理文档滚动事件。

参数 类型 描述 默认值
e* MouseEvent

返回值

类型:void

(保护的)处理文档滚动事件。

render()():VNode

(保护的)

返回值

类型:VNode

继承自

Control

(保护的)(已覆盖)当被子类重写时负责返回当前控件的虚拟节点。

Control
layout()():void

返回值

类型:void

继承自

Control

(已覆盖)重新布局当前控件。

Control
init()():void

(保护的)当被子类重写时负责在关联元素后初始化当前控件。

返回值

类型:void

继承自

Control

(保护的)当被子类重写时负责在关联元素后初始化当前控件。

Control
uninit()():void

(保护的)当被子类重写时负责在元素被取消关联前取消初始化当前控件。

返回值

类型:void

继承自

Control

(保护的)当被子类重写时负责在元素被取消关联前取消初始化当前控件。

Control
update()():void

重新渲染当前控件。

返回值

类型:void

继承自

Control

重新渲染当前控件。

Control
invalidate()():void

使当前控件无效并在下一帧重新渲染。

返回值

类型:void

继承自

Control

使当前控件无效并在下一帧重新渲染。

Control
renderTo(parent, ...)(parent:Control | Node, refChild?:Control | Node):void

将当前控件渲染到指定的父控件或节点。

参数 类型 描述 默认值
parent* Control | Node
refChild Control | Node

返回值

类型:void

继承自

Control

将当前控件渲染到指定的父控件或节点。

Control
find(selector)(selector:string):Control | HTMLElement

在当前控件查找指定的子控件或节点。

参数 类型 描述 默认值
selector* string

返回值

类型:Control | HTMLElement

返回子控件或节点。如果找不到则返回 null。

继承自

Control

在当前控件查找指定的子控件或节点。

Control
query(selector)(selector:string):(Control | HTMLElement)[]

在当前控件查找匹配的所有子控件或节点。

参数 类型 描述 默认值
selector* string

返回值

类型:(Control | HTMLElement)[]

返回子控件或节点列表。

继承自

Control

在当前控件查找匹配的所有子控件或节点。

Control
Popup.create(elem, target, ...)(elem:Control | HTMLElement, target:Control | HTMLElement, event?:string, align?:PinAlign, arrow?:boolean, animation?:ToggleAnimation):Popup

创建一个弹层。

参数 类型 描述 默认值
elem* Control | HTMLElement
target* Control | HTMLElement
event "click" | "focus" | "dblclick" | "auxclick" | "contextmenu" | "pointerdown" | "pointerup" | "pointerenter" | "pointermove" | "hover" | "active" | "focusin"
align PinAlign
arrow boolean
animation ToggleAnimation

返回值

类型:Popup

返回创建的弹层对象。

创建一个弹层。