拖拽 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()

参数类型默认值数据流向描述
dataObject绑定属性
data.proxystring
Dragable.Proxy
Element
function
'clone'outside @=> inside拖拽代理,即拖拽时移动的元素。默认值为`clone`,拖拽时拖起自身的一个拷贝;当值为`self`,拖拽时直接拖起自身。也可以用`<draggable.proxy>`自定义代理,或直接传入一个元素或函数。`''`表示不使用拖拽代理。
data.valuevaroutside => inside拖拽时需要传递的值
data.disabledbooleanfalseoutside => inside是否禁用
data.classstring'z-draggable'outside => inside可拖拽时(即disabled=false)给该元素附加此class
data.sourceClassstring'z-dragSource'outside => inside拖拽时给起始元素附加此class
data.proxyClassstring'z-dragProxy'outside => inside拖拽时给代理元素附加此class

Methods

draggable.cancel()

取消拖拽操作

参数类型默认值描述
无参数
返回值类型描述
无返回值

Events

draggable.$on('dragstart')

拖拽开始时触发

属性类型描述
senderobject事件发送对象,为当前draggable
originobject拖拽源,为当前draggable
sourceobject拖拽起始元素
proxyobject拖拽代理元素
valuevar拖拽时需要传递的值
screenXnumber鼠标指针相对于屏幕的水平坐标
screenYnumber鼠标指针相对于屏幕的垂直坐标
clientXnumber鼠标指针相对于浏览器的水平坐标
clientYnumber鼠标指针相对于浏览器的垂直坐标
pageXnumber鼠标指针相对于页面的水平坐标
pageYnumber鼠标指针相对于页面的垂直坐标
startXnumber拖拽开始时鼠标指针的水平坐标
startYnumber拖拽开始时鼠标指针的垂直坐标
dragXnumber拖拽时鼠标指针相对于起始坐标的水平位移
dragYnumber拖拽时鼠标指针相对于起始坐标的垂直位移
startLeftnumber拖拽开始时代理元素的left值
startTopnumber拖拽开始时代理元素的top值
leftnumber拖拽时代理元素的left值
topnumber拖拽时代理元素的top值
cancelfunction取消拖拽操作

draggable.$on('drag')

正在拖拽时触发

属性类型描述
senderobject事件发送对象,为当前draggable
originobject拖拽源,为当前draggable
sourceobject拖拽起始元素
proxyobject拖拽代理元素
valuevar拖拽时需要传递的值
screenXnumber鼠标指针相对于屏幕的水平坐标
screenYnumber鼠标指针相对于屏幕的垂直坐标
clientXnumber鼠标指针相对于浏览器的水平坐标
clientYnumber鼠标指针相对于浏览器的垂直坐标
pageXnumber鼠标指针相对于页面的水平坐标
pageYnumber鼠标指针相对于页面的垂直坐标
startXnumber拖拽开始时鼠标指针的水平坐标
startYnumber拖拽开始时鼠标指针的垂直坐标
dragXnumber拖拽时鼠标指针相对于起始坐标的水平位移
dragYnumber拖拽时鼠标指针相对于起始坐标的垂直位移
startLeftnumber拖拽开始时代理元素的left值
startTopnumber拖拽开始时代理元素的top值
leftnumber拖拽时代理元素的left值
topnumber拖拽时代理元素的top值
cancelfunction取消拖拽操作

draggable.$on('dragend')

拖拽结束时触发

属性类型描述
senderobject事件发送对象,为当前draggable
originobject拖拽源,为当前draggable
sourceobject拖拽起始元素
proxyobject拖拽代理元素
valuevar拖拽时需要传递的值