js事件处理相关-实现一个div的拖拽

时间:2022-09-07 20:36:25
最终代码:
 <!DOCTYPE html>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     <title></title>
     <meta charset="utf-8" />
     <style type="text/css">
         #divTest {
             width : 200px;
             height : 200px;
             background-color : red;
             border : 1px solid #00ffff;
             position : absolute;
         }
     </style>
 </head>
 <body>
     测试一下
     <div id="divTest">
     </div>

     <script type="text/javascript">
         var oDiv = document.getElementById("divTest");
         oDiv.onmousedown = function (en) {
             var ev = ev || event;
             var disX = en.clientX - oDiv.offsetLeft;
             var disY = en.clientY - oDiv.offsetTop;
             if (oDiv.setCapture) {
                 oDiv.setCapture();
             }

             document.onmousemove = function (en) {
                 var ev = ev || event;
                 oDiv.style.top = en.clientY - disY + 'px';
                 oDiv.style.left = en.clientX - disX + 'px';
             }
             document.onmouseup = function () {
                 document.onmousemove = null;
                 if (oDiv.releaseCapture) {
                     oDiv.releaseCapture()
                 }
             }
             return false;//阻止默认行为(如果页面中有文字,则会默认拖动文字),ie8及一下不行
         }
     </script>

 </body>
 </html>

注意点:

1.获取当前div离上方和左方的距离之前使用了oDiv.style.left,获取不到

js事件处理相关-实现一个div的拖拽

2.注意后面加px,老是容易忘记,然后还找不到错误原因浪费事件

js事件处理相关-实现一个div的拖拽

3.

js事件处理相关-实现一个div的拖拽

4.以后还是得实践,一味的看视频效果并不好,一定要明确最终目的,是需要掌握而不是单纯的看完视频。