import Vue from 'vue'
const drag = Vue.directive('drag', {
bind: function(el, binding, vnode) {
const odiv = el; // 获取当前元素
odiv.onmousedown = e => {
// 算出鼠标相对元素的位置
const disX = e.clientX - odiv.offsetLeft;
const disY = e.clientY - odiv.offsetTop;
document.onmousemove = e => {
// 用鼠标的位置减去鼠标相对元素的位置,得到元素的位置
const left = e.clientX - disX;
const top = e.clientY - disY;
odiv.style.left = left + 'px';
odiv.style.top = top + 'px';
};
document.onmouseup = e => {
document.onmousemove = null;
document.onmouseup = null;
};
};
}
});
export { drag }
vue v-drag拖拽指令
最新推荐文章于 2024-10-05 19:46:18 发布