29 lines
817 B
JavaScript
29 lines
817 B
JavaScript
// TODO: Rewrite to support more than one window per page.
|
|
|
|
const subwindow = document.getElementById("window");
|
|
const titlebar = document.getElementById("window-titlebar");
|
|
|
|
let dragging = false;
|
|
let prevPosX;
|
|
let prevPosY;
|
|
|
|
titlebar.addEventListener("mousedown", (event) => {
|
|
dragging = true;
|
|
prevPosX = event.clientX;
|
|
prevPosY = event.clientY;
|
|
});
|
|
|
|
window.addEventListener("mousemove", (event) => {
|
|
if (!dragging)
|
|
return;
|
|
const newPosX = subwindow.offsetLeft - (prevPosX - event.clientX);
|
|
const newPosY = subwindow.offsetTop - (prevPosY - event.clientY);
|
|
subwindow.style.left = newPosX + "px";
|
|
subwindow.style.top = newPosY + "px";
|
|
prevPosX = event.clientX;
|
|
prevPosY = event.clientY;
|
|
});
|
|
|
|
window.addEventListener("mouseup", (_event) => {
|
|
dragging = false;
|
|
});
|