1 Star 0 Fork 0

李想20040307/web前端

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
移动的小球.html 2.08 KB
一键复制 编辑 原始数据 按行查看 历史
李想 提交于 2024-04-21 00:32 . 4.21
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>移动的小球</title>
<style>
.circle {
border-radius: 50%;
width: 100px;
height: 100px;
background-color: rgb(255, 0, 0);
position: absolute;
cursor: grab;
}
.circle-inside{
border-radius: 50%;
width: 20px;
height: 20px;
background-color: rgb(64, 0, 255);
position: absolute;
display: none;
}
</style>
</head>
<body>
<div class="circle" id="myElement"></div>
<div class="circle-inside"></div>
<script>
const mouseCircle = document.querySelector('.circle-inside');
const element = document.getElementById('myElement');//获取了id为myElement的元素
let isMove = false;//鼠标是否拖动
let offsetX, offsetY;//记录位置坐标
element.addEventListener('mousedown', (e) => {//鼠标监听器,记录鼠标移动后位置坐标
isMove = true;
offsetX = e.clientX - element.getBoundingClientRect().left;
offsetY = e.clientY - element.getBoundingClientRect().top;
element.style.cursor='grabbing';//点击之后小手变抓取
mouseCircle.style.display = 'block';
});
document.addEventListener('mousemove', (e) => {//事件监听器,更新属性使其随鼠标移动
if (isMove) {
element.style.left = e.clientX - offsetX + 'px';
element.style.top = e.clientY - offsetY + 'px';
mouseCircle.style.left=e.clientX-10+'px';
mouseCircle.style.top=e.clientY-10+'px';
}
});
document.addEventListener('mouseup', () => {//如果鼠标离开则不拖动
isMove = false;
element.style.cursor = 'grab';//小手恢复正常
mouseCircle.style.display = 'none';
});
</script>
</body>
</html>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/li-xiang-20040307/web-front-end.git
git@gitee.com:li-xiang-20040307/web-front-end.git
li-xiang-20040307
web-front-end
web前端
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385