微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

div拖动拖拽图片验证码部分代码

在underside中拖动redBoxBox和redBox的横坐标一致
  1 <!doctype html>
  2 <html lang="en">
  3 <head>
  4  
  5 <Meta charset="UTF-8">
  6 <title>拖拽</title>
  7 
  8 <style>
  9 #outside {
 10     border: 1px solid #99CC00;
 11     background-color: #ccc;
 12     width: 300px;
 13     height: 300px;
 14     position: relative;
 15 }
 16 
 17 #underside {
 18     border: 1px solid #99aa00;
 19     background-color: #ccc;
 20     left: -1px;
 21     width: 300px;
 22     height: 50px;
 23     position: relative;
 24     top: 306px;
 25 }
 26 
 27 #Box {
 28     background: #123456;
 29     width: 50px;
 30     height: 50px;
 31     position: absolute;
 32 }
 33 
 34 #redBox {
 35     background: red;
 36     width: 50px;
 37     height: 50px;
 38     position: absolute;
 39     cursor: pointer;
 40 }
 41 </style>
 42 
 43 </head>
 44 <body>
 45     <div id="outside">
 46         <div id="Box"></div>
 47         <div id="underside">
 48             <div id="redBox"></div>
 49         </div>
 50     </div>
 51 
 52 
 53 
 54 
 55     <script language="javascript">
 56         // 初始化拖放对象
 57         var Box = document.getElementById("Box");
 58         // 获取页面中被拖放元素的引用指针
 59         Box.style.position = "absolute"; // 绝对定位
 60         // 初始化变量,标准化事件对象
 61         var mx, 62             my, 63             ox, 64             oy; // 定义备用变量
 65         function e(event) { // 定义事件对象标准化函数
 66             if (!event) { // 兼容IE浏览器
 67                 event = window.event;
 68                 event.target = event.srcElement;
 69                 event.layerX = event.offsetX;
 70                 event.layerY = event.offsetY;
 71             }
 72             event.mx = event.pageX || event.clientX + document.body.scrollLeft;
 73             // 计算鼠标指针的x轴距离
 74             event.my = event.pageY || event.clientY + document.body.scrollTop;
 75             // 计算鼠标指针的y轴距离
 76             return event; // 返回标准化的事件对象
 77         }
 78         // 定义鼠标事件处理函数
 79     
 80     
 81     
 82         $("#redBox")[0].onmousedown = function(event) { // 按下鼠标时,初始化处理
 83             event = e(event); // 获取标准事件对象
 84             o = event.target; // 获取当前拖放的元素
 85             ox = parseInt(o.offsetLeft); // 拖放元素的x轴坐标
 86             oy = parseInt(o.offsetTop); // 拖放元素的y轴坐标
 87             mx = event.mx; // 按下鼠标指针的x轴坐标
 88             my = event.my; // 按下鼠标指针的y轴坐标
 89             document.onmousemove = move; // 注册鼠标移动事件处理函数
 90             document.onmouseup = stop; // 注册松开鼠标事件处理函数
 91     
 92     
 93     
 94         }
 95         function move(event) { // 鼠标移动处理函数
 96             event = e(event);
 97             o.style.left = ox + event.mx - mx + "px"; // 定义拖动元素的x轴距离
 98             o.style.top = oy + event.my - my + "px"; // 定义拖动元素的y轴距离
 99             //红色拖动元素
100             var y = $(#redBox).position().left;
101             var x = $(#redBox).position().top;
102             var yDiff = parseInt($("#underside").css("width").split("px")[0]) - parseInt($("#redBox").css("width").split("px")[0]);
103             console.log(y)
104             if (y > yDiff) {
105                 $("#redBox").css("left",yDiff + "px")
106     
107             }
108             $("#Box").css("left",$("#redBox").css("left"))
109             if (y < 0) {
110                 $("#redBox").css("left",0 + "px")
111     
112             }
113             if (x != 0) {
114                 $("#redBox").css("top",0 + "px")
115     
116             }
117     
118         }
119         function stop(event) { // 松开鼠标处理函数
120             event = e(event);
121             ox = parseInt(o.offsetLeft); // 记录拖放元素的x轴坐标
122             oy = parseInt(o.offsetTop); // 记录拖放元素的y轴坐标
123             mx = event.mx ; // 记录鼠标指针的x轴坐标
124             my = event.my ; // 记录鼠标指针的y轴坐标
125             o = document.onmousemove = document.onmouseup = null;
126             /* console.log(event.mx,event.my) */
127             // 释放所有操作对象
128     
129         }
130     </script>
131 </body>
132 </html>
133  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。