Skip to content
On this page

@sepveneto/free-dom

free-dom

主要用于快速实现dom元素的拖曳和缩放功能,利用FreeScene可以额外实现边缘吸附和区域限制功能。

属性

名称类型必填默认值可选值说明
v-model/model-valueobject--元素的位置及尺寸
lock-aspect-ratiobooleanfalse-缩放时是否按当前宽高比计算
handlestring--通过class或id指定允许触发拖曳的元素
drag-start-fnCoreFnCallback--拖曳开始的回调函数
drag-fnCoreFnCallback--拖曳时的回调函数
drag-stop-fnCoreFnCallback--拖曳结束的回调函数
resize-start-fnResizeFnCallback--缩放开始的回调函数
resize-fnResizeFnCallback--缩放时的回调函数
resize-stop-fnResizeFnCallback--缩放结束的回调函数
auto-sizebooleantrue-是否在初次渲染时根据当时的元素尺寸自动计算宽高
min-widthnumber50-缩放的最小宽度,单位px
min-heightnumber50-缩放的最小高度,单位px
disabled-dragbooleanfalse-是否禁用拖曳功能
disabled-resizebooleanfalse-是否禁用缩放功能
scalearray-enum允许缩放的方向
fix-non-monospacedbooleanfalse-是否在初次渲染是等待字体加载完成再计算尺寸(主要是针对非等宽字体)
keyboardbooleanfalse-是否允许通过键盘的方向键来控制选中元素的移动
disabled-selectbooleanfalse-是否屏蔽选中操作

方法

名称参数说明
syncSize-重新根据内部元素大小计算宽高(需要关闭auto-size

free-scene 属性

名称类型必填默认值可选值说明
diffnumber2-触发吸附的距离,单位px
show-linebooleantrue-显示对齐参考线
min-widthnumber50-元素缩放的最小宽度,单位px
min-heightnumber50-元素缩放的最小高度,单位px
fix-non-monospacedbooleanfalse-所有元素是否在初次渲染是等待字体加载完成再计算尺寸(主要是针对非等宽字体)
disabled-dragbooleanfalse-是否禁用所有元素的拖曳功能
disabled-resizebooleanfalse-是否禁用所有元素的缩放功能
disabled-selectbooleanfalse-是否禁用所有元素的选中功能
disabled-batchbooleanfalse-是否禁用批量选择
scalearray-['t', 'r', 'l', 'b', 'lt', 'lb', 'rt', 'rb']所有元素允许缩放的方向
lock-aspect-ratiobooleanfalse-所有元素缩放时是否按当前宽高比计算

grid-layout

严重参考了react-grid-layout的代码,同时只实现了部分功能。

属性

名称类型必填默认值可选值说明
v-model/model-valueobject✔️️--布局参数
colsnumber12-栅格的列数
max-rowsnumberInfinity-栅格的行数
min-wnumber1-元素缩放的最小宽度
min-hnumber1-元素缩放的最小高度
row-heightnumber150-栅格的行高
marginnumber[][10, 10]-元素之间的间隔,[水平方向,垂直方向]
container-paddingnumber[]--布局的内边距,[水平方向,垂直方向]
disabled-dragbooleanfalse-禁用元素拖曳
disabled-resizebooleanfalse-禁用元素缩放
collisionbooleanfalse-启用元素碰撞

item属性

名称类型必填默认值可选值说明
istring | number✔️--布局元素的唯一标识
xnumber--x轴的位置
ynumber--y轴的位置
wnumber--宽度
hnumber--高度
staticboolean--是否为静态元素
scalearray['rb']['t', 'r', 'l', 'b', 'lt', 'lb', 'rt', 'rb']元素允许缩放的方向