拖拽 Draggable
示例
基本形式
<draggable><div class="u-color u-color-primary">拖我</div></draggable>
移动自身
如果DOM元素的CSS属性position
默认为static
,则在拖拽时会自动设置为relative
。
<draggable proxy="self"><div class="u-color u-color-info">自身</div></draggable>
设置代理
<draggable>
<div class="u-color u-color-primary">拖我</div>
<draggable.proxy>
<div class="u-color u-color-warning">代理</div>
</draggable.proxy>
</draggable>
事件
请打开浏览器的控制台查看结果。
<draggable
on-dragstart={console.log('on-dragstart:', '$event:', $event)}
on-dragend={console.log('on-dragend:', '$event:', $event)}>
<div class="u-color u-color-primary">拖我</div>
</draggable>
API
Class
Draggable
继承自。
Options
new Draggable()
参数 | 类型 | 默认值 | 数据流向 | 描述 |
---|---|---|---|---|
data | Object | 绑定属性 | ||
data.proxy | string Dragable.Proxy Element function | 'clone' | outside @=> inside | 拖拽代理,即拖拽时移动的元素。默认值为`clone`,拖拽时拖起自身的一个拷贝;当值为`self`,拖拽时直接拖起自身。也可以用`<draggable.proxy>`自定义代理,或直接传入一个元素或函数。`''`表示不使用拖拽代理。 |
data.value | var | outside => inside | 拖拽时需要传递的值 | |
data.disabled | boolean | false | outside => inside | 是否禁用 |
data.class | string | 'z-draggable' | outside => inside | 可拖拽时(即disabled=false)给该元素附加此class |
data.sourceClass | string | 'z-dragSource' | outside => inside | 拖拽时给起始元素附加此class |
data.proxyClass | string | 'z-dragProxy' | outside => inside | 拖拽时给代理元素附加此class |
Methods
draggable.cancel()
取消拖拽操作
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
无参数 | |||
返回值 | 类型 | 描述 | |
无返回值 |
Events
draggable.$on('dragstart')
拖拽开始时触发
属性 | 类型 | 描述 |
---|---|---|
sender | object | 事件发送对象,为当前draggable |
origin | object | 拖拽源,为当前draggable |
source | object | 拖拽起始元素 |
proxy | object | 拖拽代理元素 |
value | var | 拖拽时需要传递的值 |
screenX | number | 鼠标指针相对于屏幕的水平坐标 |
screenY | number | 鼠标指针相对于屏幕的垂直坐标 |
clientX | number | 鼠标指针相对于浏览器的水平坐标 |
clientY | number | 鼠标指针相对于浏览器的垂直坐标 |
pageX | number | 鼠标指针相对于页面的水平坐标 |
pageY | number | 鼠标指针相对于页面的垂直坐标 |
startX | number | 拖拽开始时鼠标指针的水平坐标 |
startY | number | 拖拽开始时鼠标指针的垂直坐标 |
dragX | number | 拖拽时鼠标指针相对于起始坐标的水平位移 |
dragY | number | 拖拽时鼠标指针相对于起始坐标的垂直位移 |
startLeft | number | 拖拽开始时代理元素的left值 |
startTop | number | 拖拽开始时代理元素的top值 |
left | number | 拖拽时代理元素的left值 |
top | number | 拖拽时代理元素的top值 |
cancel | function | 取消拖拽操作 |
draggable.$on('drag')
正在拖拽时触发
属性 | 类型 | 描述 |
---|---|---|
sender | object | 事件发送对象,为当前draggable |
origin | object | 拖拽源,为当前draggable |
source | object | 拖拽起始元素 |
proxy | object | 拖拽代理元素 |
value | var | 拖拽时需要传递的值 |
screenX | number | 鼠标指针相对于屏幕的水平坐标 |
screenY | number | 鼠标指针相对于屏幕的垂直坐标 |
clientX | number | 鼠标指针相对于浏览器的水平坐标 |
clientY | number | 鼠标指针相对于浏览器的垂直坐标 |
pageX | number | 鼠标指针相对于页面的水平坐标 |
pageY | number | 鼠标指针相对于页面的垂直坐标 |
startX | number | 拖拽开始时鼠标指针的水平坐标 |
startY | number | 拖拽开始时鼠标指针的垂直坐标 |
dragX | number | 拖拽时鼠标指针相对于起始坐标的水平位移 |
dragY | number | 拖拽时鼠标指针相对于起始坐标的垂直位移 |
startLeft | number | 拖拽开始时代理元素的left值 |
startTop | number | 拖拽开始时代理元素的top值 |
left | number | 拖拽时代理元素的left值 |
top | number | 拖拽时代理元素的top值 |
cancel | function | 取消拖拽操作 |
draggable.$on('dragend')
拖拽结束时触发
属性 | 类型 | 描述 |
---|---|---|
sender | object | 事件发送对象,为当前draggable |
origin | object | 拖拽源,为当前draggable |
source | object | 拖拽起始元素 |
proxy | object | 拖拽代理元素 |
value | var | 拖拽时需要传递的值 |