123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- <style>
- #box1 {
- width: 100px;
- height: 100px;
- background-color: red;
- position: absolute;
- }
- #box2{
- width: 100px;
- height: 100px;
- background-color: yellow;
- position: absolute;
- left: 200px;
- top: 200px;
- }
- </style>
- <script>
- window.onload = function () {
- /**
- * 拖拽box1元素
- * -拖拽的流程
- * 1.当鼠标在被拖拽元素上按下时,开始拖拽 onmousedown
- * 2.当鼠标移动时被拖拽元素跟随鼠标移动 onmousemove
- * 3.当鼠标松开时,被拖拽元素固定在当前位置 onmouseup
- */
- //获取box1
- var box1 = document.getElementById("box1");
- //为box1绑定一个鼠标按下事件
- box1.onmousedown = function (event) {
- event = event || window.event;
- //div的偏移量 鼠标.clientX - 元素.offsetLeft
- //div的偏移量 鼠标.clientY - 元素.offsetTop
- var ol = event.clientX - box1.offsetLeft;
- var ot = event.clientY - box1.offsetTop;
- //为document绑定一个onmousemove事件
- document.onmousemove = function (event) {
- event = event || window.event;
- //当鼠标移动时被拖拽元素跟随鼠标移动 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
- //取消document的onmousemove事件
- document.onmousemove = null;
- //取消document的onmouseup事件
- document.onmouseup = null;
- // alert("鼠标松开了");
- };
- };
- };
- </script>
- </head>
- <body>
- <div id="box1"></div>
- <div id="box2"></div>
- </body>
- </html>
|