HTML dnd记录

  1 <!DOCTYPE html>
  2 
  3 <html xmlns="http://www.w3.org/1999/xhtml">
  4 <head runat="server">
  5     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6     <title>code</title>
  7     <script src="js/jquery-1.9.1.min.js"></script>
  8     <style>
  9         body {
 10             margin: 5px;
 11         }
 12 
 13         .div0 {
 14 width: 50px;
 15 border-radius: 10px;
 16 height: 50px;
 17 background: #BBB;
 18 color: #FFF;
 19 line-height: 25px;
 20 text-align: center;
 21 font-family: Microsoft YaHei;
 22 cursor: move;
 23 float: left;
 24 margin: 10px;
 25 font-size: 14px;
 26           
 27         }
 28 
 29             .div0:hover {
 30                 border: 1px dashed #000;
 31                 background: #989898;
 32                 color: #000;
 33             }
 34 
 35         .DataSet {
 36             width:200px;
 37             height: 400px;
 38             border: 1px solid #000;
 39           margin: 51px 50px 50px 90px;
 40         display:none;
 41 
 42             
 43           
 44         }
 45 
 46         #span {
 47             width: 100px;
 48             height: 100px;
 49             border: 1px solid #000;
 50         }
 51         .ButtonDiv {
 52             width:300px;
 53             height:100px;
 54             border:1px solid #828282;
 55             display:block;
 56             font-size:14px;
 57             color:#828282;
 58             font-family:Microsoft YaHei;
 59                 position: fixed;
 60                 display:none;
 61     top: 0;
 62     left: 40%;
 63 
 64         }
 65     </style>
 66 </head>
 67 <body id="body" style="height:400px;">
 68      <div class="ButtonDiv" id="buttondiv">
 69     </div>
 70     <div draggable="true" class="div0" id="div0">
 71         测试0
 72     </div>
 73     <div draggable="true" class="div0" id="div1">
 74         测试1
 75     </div>
 76     <div draggable="true" class="div0" id="div2">
 77         测试2
 78     </div>
 79         <div draggable="true" class="div0" id="div3">
 80         测试3
 81     </div>
 82     <div draggable="true" class="div0" id="div4">
 83         测试4
 84     </div>
 85     <div class="DataSet" id="DataSet">
 86     </div>
 87 
 88 
 89     <script>
 90         var count = 0;
 91         var div = $(".div0");
 92         var data;
 93         var drapx;
 94         var drapy;
 95         var mouseX;
 96         var mouseY;
 97         var MarginValue;
 98         $(".div0").mousedown(function () {
 99      
100             this.ondragstart = function (e) {
101                 mouseX = window.event.offsetX;
102                 mouseY = window.event.offsetY;
103                 e.dataTransfer.setData("text", e.target.id);
104                 e.dataTransfer.effectAllowed = "copy";//设置鼠标进入容器样式
105                 document.getElementById(e.target.id).style.border = "1px dashed #fff";
106         
107                 count++;
108             },
109             this.ondrag = function (e)
110             {
111             },
112             this.ondragend = function (e) {
113            
114              document.getElementById(e.target.id).style.border = "none";//放弃退拽时触发
115             }
116         });
117         var DataSet = document.getElementById("body");// document.getElementById("DataSet");
118         DataSet.ondragover = function (e) {
119             this.style.border = "1px dashed rgb(70, 70, 70)";//进入目标时,给目标添加边框
120             e.preventDefault();
121         
122         
123         },
124         DataSet.ondragenter = function (e)
125         {
126             
127         },
128         DataSet.ondragleave = function (e) {
129             this.style.border = "1px solid #000";//离开目标时,删除边框
130         },
131         DataSet.ondrop = function (e) {
132             data = e.dataTransfer.getData("text");
133             var datatar = document.getElementById(data);
134             e.dataTransfer.dropEffect = "copy";
135             document.title = e.target.id;
136             //判断浏览器支持
137             if (datatar.currentStyle) {
138                 document.title = "这里是IE:" + datatar.currentStyle.marginTop;//IE支持
139                 MarginValue = datatar.currentStyle.marginTop;
140             } else {
141                 document.title = "这里是谷歌,火狐,苹果:" + getComputedStyle(datatar, null).marginTop;
142                 MarginValue = getComputedStyle(datatar, null).marginTop;
143             }
144             MarginValue = MarginValue.replace("px", "");
145             var TargetTop = e.target.offsetTop - MarginValue;//侵入者
146             var TargetLeft = e.target.offsetLeft - MarginValue;//侵入者
147             var DataTop = datatar.offsetTop - MarginValue;//守卫者
148             var DataLeft = datatar.offsetLeft - MarginValue;//守卫者
149       
150             if (e.target.id == "body") {
151                 var mouseEndX= window.event.clientX;
152                 var mouseEndY = window.event.clientY;
153                 datatar.style.position = "absolute";
154               
155                 datatar.style.top = mouseEndY - mouseY - 10  + "px";//鼠标结束坐标-鼠标开始坐标-元素margin值
156                 datatar.style.left = mouseEndX - mouseX - 10 + "px";//鼠标结束坐标-鼠标开始坐标-元素margin值
157                 DataSet.appendChild(document.getElementById(data));
158                 document.getElementById(data).style.border = "none";//删除边线
159             } else {
160                 document.title = MarginValue;
161                 datatar.style.top = TargetTop + "px";
162                 datatar.style.left = TargetLeft + "px";
163                 e.target.style.top = DataTop + "px";
164                 e.target.style.left = DataLeft + "px";
165                 
166            
167         
168             }
169            
170         }
171 
172     </script>
173 </body>
174 </html>

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。