Skip to content

UI

基础元素(所有元素的基类),展示所有元素通用的属性方法。

除了 API 列表之外,我们还提供了简单的 分类方式 来快速了解 API 的构成。

📃 API

所有属性

名称描述
id元素的唯一 id
tag元素标签名(即元素的类名)
name元素的名称
className分类名称,暂时只支持设置 1 个
innerId运行时创建的临时 id(递增),不能用于远程存储
innerName运行时创建的临时名称,用于快速识别元素
xx 轴位置
yy 轴位置
width宽度
height高度
lockRatio是否锁定元素的宽高比例,需安装 resize 插件
scaleXx 轴缩放比例, 为负数时表示镜像 X 轴
scaleYy 轴缩放比例,为负数时表示镜像 Y 轴
scale快速设置 / 获取 scaleX, scaleY
rotation旋转角度
skewXx 轴倾斜角度
skewYy 轴倾斜角度
offsetXx 轴偏移量
offsetYy 轴偏移量
origin围绕原点旋转、缩放元素,同 CSS 的 transform-origin
around围绕 around 点绘制元素,类似于游戏引擎中的 anchor 锚点功能
boxBounds元素在 内部坐标系 中的基础边界(OBB 包围盒)
renderBounds元素在 内部坐标系 中的渲染边界(AABB 包围盒)
worldBoxBounds元素在 世界坐标系 中的基础边界(AABB 包围盒)
worldRenderBounds元素在 世界坐标系 中的渲染边界(AABB 包围盒)
worldTransform相对于世界坐标的变换矩阵, 包含 scaleX、scaleY 属性
localTransform相对于父元素的变换矩阵
zIndex在父元素中的层叠顺序
opacity不透明度
worldOpacity元素在全局视图中的不透明度(会受父元素影响)
visible元素的可见性,可用于隐藏元素
fill填充,类似于 HTML5 中的 background-color,或文字的 color,支持 纯色线性渐变径向渐变角度渐变图案填充 等类型, 支持多个填充同时叠加
stroke描边,类似于 HTML5 中的 border-color,支持 纯色线性渐变径向渐变角度渐变图案 等类型, 支持多个描边同时叠加
strokeAlign描边的对齐方式
strokeWidth描边的宽度
strokeWidthFixed是否固定线宽(不受视图放大影响)
strokeCap描边的端点形状
strokeJoin描边的拐角处理
dashPattern虚线描边
dashOffset虚线描边的起点偏移值
shadow外阴影, 支持多个阴影叠加、boxShadow 效果
innerShadow内阴影, 支持多个内阴影叠加
mask设为遮罩
eraser设为橡皮擦
blendMode混合模式
hittable元素是否响应鼠标、触摸或其他指针设备的交互事件,类似 CSS 的 pointer-events 属性
hitChildren进一步定义元素子级的可交互性
hitSelf进一步定义自身(不含子元素)的可交互性
hitFill进一步定义元素 fill 的可交互性,设置 pixel 可以进行 PNG / SVG 图片的像素级检测,过滤掉透明像素
hitStroke进一步定义元素 stroke 的可交互性
editable是否允许编辑,需安装 图形编辑器插件
draggable是否允许拖拽
dragBounds限制元素的拖动范围
cursorhover 到元素上时,显示的光标样式,支持所有 CSS 的光标名称
states状态列表,可预设复杂多样的元素、游戏状态,用于随时切换, 支持添加 过渡效果,需安装 交互状态插件
state当前状态,需安装 交互状态插件
button设为按钮,子元素将自动同步交互状态,如 state、hover、press...,需安装 交互状态插件
hoverStyle光标移入时的交互样式, 移出后自动还原,需安装 交互状态插件
pressStyle光标按下时的交互样式, 抬起后自动还原,需安装 交互状态插件
focusStyle元素 focus() 时的聚焦样式, 失去焦点后自动还原,需安装 交互状态插件
selected是否选中,需安装 交互状态插件
selectedStyle元素 selected 设为 true 时的选中样式, selected 设为 false 后自动还原,需安装 交互状态插件
disabled是否禁用,需安装 交互状态插件
disabledStyle元素 disabled 设为 true 时的禁用样式, disabled 设为 false 后自动还原,需安装 交互状态插件
animation动画属性,支持延时、循环和 seek,可制作过渡动画、摇摆动画、关键帧动画、路径动画,需安装 动画插件
transition状态过渡 / 进入状态过渡效果,需安装 动画插件
transitionOut退出状态时的过渡效果,未设置时使用 transition,需安装 动画插件
motionPath设为运动路径,需安装 运动路径插件
motionPrecision设置运动路径的精度值,用于控制提取运动路径上指定点的精度,需安装 运动路径插件
motion定位元素在 运动路径 上的位置,可使用百分比类型,需安装 运动路径插件
motionRotation运动路径 产生的自动角度上偏移一个角度,需安装 运动路径插件
parent父元素
leafer元素所在的 Leafer 实例
app元素所在的 App 实例(根应用),非 App 结构时为 Leafer
isLeafer元素是否为 Leafer 实例
leaferIsCreatedLeafer 实例及子元素 创建完成(完成首次创建)
leaferIsReadyLeafer 实例是否 准备就绪(完成首次布局)
zoomLayerLeafer 实例的 缩放平移视图层
data预留给用户的自定义数据对象,我们永远不会占用, 默认为空对象 {}
__内部数据处理实例(两个下划线的变量)
proxyData让元素在 Vue / React 等前端框架 中支持响应式数据
path路径数据,支持 SVG 与 Cavnas 绘图命令 (元素可进入路径优先模式)

所有方法

名称描述
move()位移元素 增量操作,可选 动画 过渡
moveInner()内部坐标系 中位移元素 增量操作,可选 动画 过渡
moveWorld()世界坐标系 中位移元素 增量操作,可选 动画 过渡
resizeWidth()resize 元素/组元素的包围盒宽度,需安装 resize 插件
resizeHeight()resize 元素/组元素的包围盒高度,需安装 resize 插件
scaleResize()缩放操作转换为宽高值 增量操作,需安装 resize 插件
scaleOf()围绕原点 origin( box 坐标 )缩放元素 增量操作
scaleOfWorld()围绕原点 worldOrigin( 世界坐标 )缩放元素 增量操作
flip()世界坐标系 中, 按轴方向 镜像/翻转元素
rotateOf()围绕原点 origin( box 坐标 )旋转元素 增量操作
rotateOfWorld()围绕原点 worldOrigin( 世界坐标 )旋转元素 增量操作
skewOf()围绕原点 origin( box 坐标 )倾斜元素 增量操作
skewOfWorld()围绕原点 worldOrigin( 世界坐标 )倾斜元素 增量操作
getBounds()获取 AABB 包围盒(边界)
getLayoutBounds()获取 OBB 包围盒(边界),含缩放、旋转等布局属性
getLayoutPoints()获取 OBB 包围盒(边界)的四个坐标点)
setTransform()设置本地变换矩阵,会自动分解为元素的布局属性
getTransform()获取变换矩阵, 支持获取相对任意父元素 relative 的相对矩阵
transform()变换操作,会自动分解为布局属性 增量操作
transformWorld()transform() 在 世界坐标系 中操作
getPagePoint()获取 page 坐标( 世界坐标page 坐标 ),支持转换移动距离
getLocalPoint()获取本地坐标( 世界坐标本地坐标 ),支持转换移动距离
getInnerPoint()获取内部坐标( 世界坐标内部坐标 ),支持转换移动距离
getBoxPoint()获取 box 坐标( 世界坐标box 坐标 ),支持转换移动距离
getWorldPointByPage()获取世界坐标( page 坐标世界坐标 ),支持转换移动距离
getWorldPointByLocal()获取世界坐标( 本地坐标世界坐标 ),支持转换移动距离
getInnerPointByLocal()获取内部坐标( 本地坐标内部坐标 ),支持转换移动距离
getWorldPoint()获取世界坐标( 内部坐标世界坐标 ),支持转换移动距离
getLocalPointByInner()获取本地坐标( 内部坐标本地坐标 ),支持转换移动距离
getBoxPointByInner()获取 box 坐标( 内部坐标box 坐标 ),支持转换移动距离
getWorldPointByBox()获取世界坐标( box 坐标世界坐标 ),支持转换移动距离
getInnerPointByBox()获取内部坐标( box 坐标内部坐标 ),支持转换移动距离
dropTo()将元素拖拽放置到另一个父容器中
focus()聚焦元素操作,单个 App 只能同时有一个元素聚焦,当一个元素聚焦时,之前元素会失焦,需安装 交互状态插件
animate()执行动画方法,并返回 动画实例,需安装 动画插件
getMotionTotal()获取运动路径的总长度,需安装 运动路径插件
getMotionPoint()获取运动路径上指定位置的 坐标点, 返回一个包含 rotation 的 坐标点,需安装 运动路径插件
on()侦听事件
on_()侦听事件,支持传入 bind 作为 listener 的 this 对象,并返回事件 id,与 off_() 配套使用
once()只侦听一次事件
off()移除事件
off_()移除事件, 与 on_() 配套使用
emit()手动派发事件
emitEvent()手动派发事件,参数必须为 IEvent 对象
forceUpdate()强制更新元素(异步),默认会更新元素的布局与渲染
updateLayout()请求更新布局,若布局无变化,则会忽略更新
forceRender()强制渲染元素(异步),只会重新渲染,不会更新布局
nextRender()等待下一次渲染帧执行函数
removeNextRender()移除 nextRender() 监听的函数
find()通过 idinnerIdclassNametag、函数条件查找元素,返回一个数组,需安装 查找插件
findTag()查找 tag,支持通过数组查找多个 tag,返回一个数组,需安装 查找插件
findOne()通过 idinnerIdclassNametag、函数条件查找元素,只返回一个元素,需安装 查找插件
findId()查找 id, 支持查找数字类型的 id(必须原始 id 类型为数字),需安装 查找插件
pick()通过坐标点(相对世界坐标)拾取元素,支持获取穿透路径,返回拾取到的目标元素和路径
waitParent()等待元素有 parent 属性时执行
waitLeafer()等待元素有 leafer 属性时执行
set()设置元素样式,可选 动画 过渡
reset()重置元素样式, 支持传入一个新的样式
get()获取设置过的属性数据
setAttr()设置属性值
getAttr()获取属性值
getComputedAttr()获取计算属性值
clone()克隆当前元素, 可以增加新样式
getPath()获取元素的数字路径(Canvas 绘图命令
getPathString()获取元素的字符串路径(Canvas 绘图命令,包含非 SVG 绘图命令)
export()导出元素为图片、json、画布,支持截图、切片,可直接下载,需安装 导出插件
toJSON()导出 JSON 对象
toString()导出 JSON 字符串
remove()移除当前元素
destroy()销毁当前元素

静态方法

名称描述
changeAttr()修改元素属性的默认值 (全局操作)
addAttr()新增元素属性(全局操作)

分类

我们还提供了简单的 分类方式 来快速了解 API 的构成, 如下:

🎞️ 数据

id / name

id     tag     name     className     innerId     innerName

parent / leafer

parent     leafer

数据 / 克隆

data     proxyData     clone()

路径数据

getPath()     getPathString()     path

导入导出

export()     toJSON()     toString

移除 / 销毁

remove()     destroy()

📐 布局

位置 / 缩放 / 旋转

position     size     scale     flip()     rotation     skew

偏移 / resize

offset     resize

围绕中心

origin     around

包围盒 / 变换

bounds     transform

转换坐标

转换坐标     快速转换

层叠 / 放置

zIndex     dropTo()

🏼 外观

透明 / 隐藏

opacity     visible

填充 / 描边

fill     stroke

渐变 / 图像

linear     radial     angular     solid     image

内外阴影

shadow     innerShadow

裁剪 / 擦除

clip     mask     eraser

混合模式

blendMode

🖱 交互

可交互性

hittable     hitChildren     hitSelf     hitFill     hitStroke

编辑 / 拖拽

editable     draggable

光标样式

cursor

交互状态

state     hover     press     focus     selected     disabled

事件处理

on() / once()     off()     emit()     命名     捕获/冒泡     模拟交互

🐆 动画

动画

animation     animate()

过渡

transition

运动路径

motionPath     motion     getMotionTotal()     getMotionPoint()

🪜 高级

限制拖动范围

dragBounds

强制渲染

forceUpdate()     updateLayout()     forceRender()     nextRender()

查找拾取

find()     findOne()     pick()

自定义属性

changeAttr()     addAttr()

Released under the MIT License.