init
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
const useMove = function (el: HTMLElement, callback: Function) {
|
||||
el.style.position = "fixed";
|
||||
let offsetX: number;
|
||||
let offsetY: number;
|
||||
if (el != null) {
|
||||
el.addEventListener("mousedown", function (event: any) {
|
||||
const path = (event.composedPath && event.composedPath()) || event.path;
|
||||
if (path[0].className === "layui-layer-title") {
|
||||
if (event.button == 0 && el != null) {
|
||||
const lexObj: any = getComputedStyle(el);
|
||||
offsetX =
|
||||
event.pageX - el.offsetLeft + parseInt(lexObj["margin-left"]);
|
||||
offsetY =
|
||||
event.pageY - el.offsetTop + parseInt(lexObj["margin-right"]);
|
||||
const move = function (event: any) {
|
||||
if (el != null) {
|
||||
let x = event.pageX - offsetX;
|
||||
let y = event.pageY - offsetY;
|
||||
if (x < 0) {
|
||||
x = 0;
|
||||
} else if (
|
||||
x >
|
||||
document.documentElement.clientWidth - el.offsetWidth
|
||||
) {
|
||||
x = document.documentElement.clientWidth - el.offsetWidth;
|
||||
}
|
||||
if (y < 0) {
|
||||
y = 0;
|
||||
} else if (
|
||||
y >
|
||||
document.documentElement.clientHeight - el.offsetHeight
|
||||
) {
|
||||
y = document.documentElement.clientHeight - el.offsetHeight;
|
||||
}
|
||||
el.style.left = `${x}px`;
|
||||
el.style.top = `${y}px`;
|
||||
callback(el.style.left, el.style.top);
|
||||
}
|
||||
return false;
|
||||
};
|
||||
document.addEventListener("mousemove", move);
|
||||
const stop = function () {
|
||||
document.removeEventListener("mousemove", move);
|
||||
document.removeEventListener("mouseup", stop);
|
||||
};
|
||||
document.addEventListener("mouseup", stop);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
}
|
||||
};
|
||||
export default useMove;
|
||||
Reference in New Issue
Block a user