1 Star 0 Fork 0

luenay/js_study

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
拖拽.html 2.37 KB
一键复制 编辑 原始数据 按行查看 历史
luenay 提交于 2022-04-24 23:45 . addfiles
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
#box1 {
position: absolute;
width: 100px;
height: 100px;
background-color: pink;
}
#box2 {
position: absolute;
width: 100px;
height: 100px;
background-color: skyblue;
left: 200px;
top: 200px;
}
</style>
</head>
<body>
<div id="box1"></div>
<div id="box2"></div>
</body>
<script>
// 拖拽box1元素
// 流程:1.鼠标在被拖拽元素上按下去别松手,开始拖拽;
// 2. 当鼠标移动时被拖拽元素跟随鼠标移动;
//    3.当鼠标松开时,被拖拽元素被固定在当前位置;
var box1 = document.getElementById("box1");
// 为box1绑定一个鼠标按下事件
box1.onmousedown = function (event) {
// 求div的偏移量,这样在鼠标拖拽的过程中,指针始终在点的位置,而不会跑到左上角去,体验感upup~
var ol = event.clientX - box1.offsetLeft; // 水平
var ot = event.clientY - box1.offsetTop; // 垂直
// 为document绑定一个onmousemove事件
document.onmousemove = function (event) {
// onmousemove事件一定要在onmousedown里面,因为是点了之后才开始动的
// 当鼠标移动时被拖拽元素跟随鼠标移动 onmousemove
// 要先获取鼠标坐标
var left = event.clientX - ol;
var top = event.clientY - ot;
// 修改box1的位置
box1.style.left = left + "px";
box1.style.top = top + "px";
};
// 为元素绑定一个鼠标松开事件
document.onmouseup = function () {
// 当鼠标松开时,被拖拽元素固定在当前位置,用onmouseup
// 相当于是取消onmousemove事件
document.onmousemove = null;
// 取消onmouseup事件,一次性事件
document.onmouseup = null;
};
// 当拖拽网页中的内容时,浏览器默认会搜索引擎中搜索内容,此时会导致拖拽功能的异常;
// 这是浏览器提供的默认行为,如果不希望发生这个行为,则可以通过return false取消这个行为
return false;
}
</script>
</html>
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/luenay/js_study.git
git@gitee.com:luenay/js_study.git
luenay
js_study
js_study
master

搜索帮助