vue 自定义指令实现拖动div的边框变大,可以全局引入到main.js里面
Vue.directive('drag', {
bind: function (el) {
var eleLeft = $(el).offset().left;
var isMouseDown = false;
var borderLen = 2; //左右边框
el.onmousedown = function (e) {
var ele = $(el);
var rightPos = eleLeft + ele.width() + borderLen;
if (rightPos - 5 <= e.pageX && e.pageX <= rightPos) {
isMouseDown = true;
ele.css('cursor', 'e-resize');
}
document.onmousemove = function (e) {
var ele = $(el);
var rightPos = eleLeft + ele.width() + borderLen;
if (rightPos - 5 <= e.pageX && e.pageX <= rightPos) {
ele.css('cursor', 'e-resize');
} else {
if (!isMouseDown) {
ele.css('cursor', 'auto');
}
}
if (isMouseDown) {
ele.width((e.pageX - eleLeft - borderLen) + 'px');
}
};
document.onmouseup = function (e) {
e.stopPropagation();
isMouseDown = false;
};
};
},
update: function (el) {
var eleLeft = $(el).offset().left;
var isMouseDown = false;
var borderLen = 2; //左右边框
el.onmousedown = function (e) {
var ele = $(el);
var rightPos = eleLeft + ele.width() + borderLen;
if (rightPos - 5 <= e.pageX && e.pageX <= rightPos) {
isMouseDown = true;
ele.css('cursor', 'e-resize');
}
document.onmousemove = function (e) {
var ele = $(el);
var rightPos = eleLeft + ele.width() + borderLen;
if (rightPos - 5 <= e.pageX && e.pageX <= rightPos) {
ele.css('cursor', 'e-resize');
} else {
if (!isMouseDown) {
ele.css('cursor', 'auto');
}
}
if (isMouseDown) {
ele.width((e.pageX - eleLeft - borderLen) + 'px');
}
};
document.onmouseup = function (e) {
e.stopPropagation();
isMouseDown = false;
};
};
}
})