码迷,mamicode.com
首页 > 其他好文 > 详细

原生拖放

时间:2017-10-12 22:55:56      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:util   add   default   style   ssl   传递   event   asc   agg   

dataTransfer 对象,它是事件对象的一个属性,用于从被拖动元素向放置目标传递字符串格式的数据。 

技术分享
 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <style type="text/css">
 7             .drag{
 8                 width: 50px;
 9                 height: 50px;
10                 position: absolute;
11                 background: red;
12             }
13             .drop{
14                 width: 100px;
15                 height: 100px;
16                 position: fixed;
17                 bottom: 50px;
18                 right: 50px;
19                 border: 1px solid black;
20             }
21             .dotted-border{
22                 border: 1px dotted black;
23             }
24         </style>
25     </head>
26     <body>
27         <div class="drag" draggable="true" id=box></div>
28         <div class="drop"></div>
29         <script src="js/utils.js" type="text/javascript"></script>
30         <script type="text/javascript">
31             /*
32              * 1.拖放的元素:ondragstart,ondrag,ondragend,只有图片,文字,超链接默认是支持拖放,一个元素是否支持拖放取决于dragable
33              * 2.拖放的目标:ondragenter,ondragover,ondragleave,ondrop,一般元素默认都不支持放,如果要支持放,重写ondrageenter,ondragover,FF还需要重写ondrop,在这些事件函数
34              * 中阻止默认行为
35              * 3.
36              */
37             var oDrag=document.querySelector(".drag");
38             var oDrop=document.querySelector(".drop");
39             //拖动元素时需要执行的
40             oDrag.ondragstart=function(){
41                 var event=getEvent();
42                 this.classList.add(dotted-border);
43                 event.dataTransfer.setData(id,box);
44             }
45             oDrag.ondrag=function(){
46                 
47             }
48             oDrag.ondragend=function(){
49                 
50             }
51             //将元素放到某个特定位置时
52             oDrop.ondragenter=function(){
53                 var event=getEvent();
54                 preventDefault(event);
55             }
56             oDrop.ondragover=function(){
57                 var event=getEvent();
58                 preventDefault(event);
59             }
60             oDrop.ondragleave=function(){
61                 
62             }
63             oDrop.ondrop=function(){
64                 var event=getEvent();
65                 preventDefault(event);
66                 
67                 //把拖放的元素放到这里
68                 var id=event.dataTransfer.getData(id);
69                 var oBox=document.getElementById(id);
70                 var clone=oBox.cloneNode(true);
71                 this.appendChild(clone);
72             }
73         </script>
74     </body>
75 </html>
View Code

 

原生拖放

标签:util   add   default   style   ssl   传递   event   asc   agg   

原文地址:http://www.cnblogs.com/crbluesky/p/7658349.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!