let divEle = document.querySelector("div");
divEle.style.width = 300 + "px";
divEle.style.height = 300 + "px";
divEle.style.backgroundColor = "skyblue";
divEle.style.position = "fixed";
divEle.style.left = 0 + "px";
divEle.style.top = 0 + "px";
divEle.style.boxSizing = "border-box";
divEle.addEventListener("mousedown", e => {
let event = e || window.event;
let divML = event.offsetX;
let divMT = event.offsetY;
divEle.style.border = "10px solid red";
document.addEventListener("mousemove", divMove);
divEle.addEventListener("mouseup", e => {
divEle.style.border = "";
document.removeEventListener("mousemove", divMove);
});
function divMove(e) {
let event = e || window.event;
let divWidth = divEle.offsetWidth;
let divHeight = divEle.offsetHeight;
divEle.style.left = event.clientX - divML + "px";
divEle.style.top = event.clientY - divMT + "px";
let divLeft = parseInt(divEle.style.left);
let divTop = parseInt(divEle.style.top);
let moveXMax = window.innerWidth - divWidth;
let moveYMax = window.innerHeight - divHeight;
if (divLeft <= 0) {
divEle.style.left = 0 + "px";
}
if (divTop <= 0) {
divEle.style.top = 0 + "px";
}
if (divLeft >= moveXMax) {
divEle.style.left = moveXMax + "px";
}
if (divTop >= moveYMax) {
divEle.style.top = moveYMax + "px";
}
}
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div></div>
<script src="./index.js"></script>
</body>
</html>