Directiva Vue (Vue.js 2.x) para manejar el elemento de arrastre y soltar el elemento.
npm install draggable-vue-directive --save Puede ver la demostración en vivo aquí: https://israelzablianov.github.io/draggable-demo
< div v-draggable >
classic draggable
</ div > .vue Archivo:
import { Draggable } from 'draggable-vue-directive'
...
export default {
directives : {
Draggable ,
} ,
... < div v-draggable =" draggableValue " >
< div :ref =" handleId " >
< img src =" ../assets/move.svg " alt =" move " >
</ div >
drag and drop using handler
</ div > .vue Archivo:
import { Draggable } from 'draggable-vue-directive'
...
export default {
directives : {
Draggable ,
} ,
data ( ) {
return {
handleId : "handle-id" ,
draggableValue : {
handle : undefined
}
} ;
} ,
mounted ( ) {
this . draggableValue . handle = this . $refs [ this . handleId ] ;
}
...draggable El objeto pasado a la directiva se denomina valor de la Directiva.
Por ejemplo, en v-draggable="draggableValue" , draggableValue puede ser un objeto que contiene los campos Folowing:
handleonPositionChangeonDragEndonDragStartresetInitialPosinitialPositionstopDraggingboundingRectboundingElementboundingRectMargin Tipo: HtmlElement | Vue
Requerido: false
Hay dos formas de usar la directiva draggable , como se muestra en la demostración anterior.
Tipo: Function
Requerido: false
A veces necesitas conocer las coordenadas del elemento mientras se arrastran.
Pasar una devolución de llamada a draggableValue logrará este objetivo; Al arrastrar el elemento, la devolución de llamada se ejecutará con 3 parámetros:
positionDiffabsolutePosition (la posición actual; la primera vez que se agrega la Directiva al DOM o se inicializa, el valor estará undefined , a menos que el elemento tenga valores left y top )event (el objeto de evento) import { Draggable } from 'draggable-vue-directive'
...
export default {
directives : {
Draggable ,
} ,
data ( ) {
return {
draggableValue : {
onPositionChange : this . onPosChanged
}
} ;
} ,
methods : {
onPosChanged : function ( positionDiff , absolutePosition , event ) {
console . log ( "left corner" , absolutePosition . left ) ;
console . log ( "top corner" , absolutePosition . top ) ;
}
}
. . . Tipo: Function
Requerido: false
Emite solo cuando se arrastra los extremos. Tiene la misma funcionalidad que onPositionChange .
Tipo: Function
Requerido: false
Emite solo cuando comienza el arrastre. Tiene la misma funcionalidad que onPositionChange .
Tipo: Boolean
Requerido: false
Valor predeterminado: undefined
Vuelve a la posición inicial del elemento, antes de que se monte.
Tipo: Position
Requerido: false
Valor predeterminado: undefined
Establece la posición inicial absoluta de este elemento.
Se aplicará cuando resetInitialPos sea true .
Tipo: Boolean
Requerido: false
Valor predeterminado: undefined
Deja de arrastrar inmediatamente.
Tipo: ClientRect
Requerido: false
Valor predeterminado: undefined
Restringe arrastrar hacia los límites del rectángulo.
Tipo: HtmlElement
Requerido: false
Valor predeterminado: undefined
Restringe arrastrar hacia los límites del elemento.
Tipo: MarginOptions
Requerido: false
Valor predeterminado: undefined
Al usar boundingRect o boundingElement , puede pasar un objeto con propiedades top , left , bottom y right , para definir un margen entre los elementos y los límites.