作业分析
本次使用html与js样式编写效果如下

屏幕截图 2025-03-26 200908.png

屏幕截图 2025-03-26 200855.png
代码实现
使用html代码实现
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>鼠标拖拽</title>
<style>
#box{
width: 300px;
height: 200px;
background-color:olivedrab;
position: absolute;
}
</style>
</head>
<body>
<div id="box"></div>
<script>
//获取标签对象
let box = document.getElementById("box")
//1按下鼠标,获取offsetx/offsety
box.onmousedown = function(e){
let ox =e.offsetX
let oy =e.offsetY
//2鼠标在网页中移动(包含在1里面)
document.onmousemove = function(e2){
//获取鼠标在窗口的位置
let cx = e2.clientX
let cy = e2.clientY
//计算left 和 top
let _left = cx - ox
let _top = cy - oy
if(_left<0){
_left=0
}
if(_top<0){
_top=0
}
if(_top>document.documentElement.clientHeight - box.offsetHeight){
_top=document.documentElement.clientHeight - box.offsetHeight
}
if(_left>document.documentElement.clientWidth - box.offsetWidth){
_left = document.documentElement.clientWidth - box.offsetWidth
}
//给div设置位置
box.style.left = _left +"px"
box.style.top = _top + "px"
}
}
//3 和1事件对等,网页中松开鼠标-停止移动
document.onmouseup = function(){
//停止移动
document.onmousemove = null
}
</script>
</body>
</html>