Vue Directive (vue.js 2.x) لمعالجة عنصر السحب والإفلات.
npm install draggable-vue-directive --save يمكنك عرض العرض التوضيحي المباشر هنا: https://israelzablianov.github.io/draggable-demo
< div v-draggable >
classic draggable
</ div > ملف .vue :
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 :
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 يسمى الكائن الذي تم تمريره إلى التوجيه قيمة التوجيه.
على سبيل المثال ، في v-draggable="draggableValue" ، يمكن أن يكون draggableValue كائنًا يحتوي على حقول الفلول:
handleonPositionChangeonDragEndonDragStartresetInitialPosinitialPositionstopDraggingboundingRectboundingElementboundingRectMargin النوع: HtmlElement | Vue
مطلوب: false
هناك طريقتان لاستخدام التوجيه draggable ، كما هو موضح في العرض التوضيحي أعلاه.
النوع: Function
مطلوب: false
في بعض الأحيان تحتاج إلى معرفة إحداثيات العنصر أثناء جرها.
سيحقق نقل رد الاتصال إلى draggableValue هذا الهدف ؛ أثناء سحب العنصر ، سيتم تنفيذ رد الاتصال بـ 3 params:
positionDiffabsolutePosition (الموضع الحالي ؛ في المرة الأولى التي يتم فيها إضافة التوجيه إلى DOM أو تهيئتها ، سيتم undefined القيمة ، ما لم left العنصر القيم top )event (كائن الحدث) 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 ) ;
}
}
. . . النوع: Function
مطلوب: false
ينبعث فقط من السحب. لديه نفس الوظيفة مثل onPositionChange .
النوع: Function
مطلوب: false
ينبعث فقط عند بدء السحب. لديه نفس الوظيفة مثل onPositionChange .
النوع: Boolean
مطلوب: false
الافتراضي: undefined
يعود إلى الموضع الأولي للعنصر ، قبل تركيبه.
النوع: Position
مطلوب: false
الافتراضي: undefined
يحدد موضع البداية المطلق لهذا العنصر.
سيتم تطبيقه عند resetInitialPos true
النوع: Boolean
مطلوب: false
الافتراضي: undefined
توقف على الفور عن السحب.
النوع: ClientRect
مطلوب: false
الافتراضي: undefined
يقيد السحب إلى داخل حدود المستطيل.
النوع: HtmlElement
مطلوب: false
الافتراضي: undefined
يقيد السحب إلى داخل حدود العنصر.
النوع: MarginOptions
مطلوب: false
الافتراضي: undefined
عند استخدام boundingRect أو boundingElement ، يمكنك تمرير كائن مع الخصائص top left bottom right ، لتحديد هامش بين العناصر والحدود.