比較的におもしろいのはもとの生態jsが書き方をドラッグします――javascript高級なプログラムの設計から摘出します.

8878 ワード

 1  var DragDrop = function () {               
 2                 var dragging = null;
 3                 var diffX = 0;
 4                 var diffY = 0;
 5                 function handleEvent(event) {
 6                     event = EventUtil.getEvent(event);
 7                     var target = EventUtil.getTarget(event);
 8                     switch (event.type) {
 9                         case "mousedown":
10                             if (target.className.indexOf("draggable") > -1) {
11                                 dragging = target;
12                                 diffX = event.clientX - target.offsetLeft;
13                                 diffY = event.clientY - target.offsetTop;                                
14                             }
15                             break;
16                         case "mousemove":
17                             if (dragging !== null) {
18                                 dragging.style.left = (event.clientX - diffX) + "px";
19                                 dragging.style.top = (event.clientY - diffY) + "px";                                
20                             }
21                             break;
22                         case "mouseup":                            
23                             dragging = null;
24                             break;
25                     }
26                 }
27                 return {
28                 enable : function () {
29                     EventUtil.addHandler(document, "mousedown", handleEvent);
30                     EventUtil.addHandler(document, "mousemove", handleEvent);
31                     EventUtil.addHandler(document, "mouseup", handleEvent);
32                 },
33                 disable : function () {
34                     EventUtil.addHandler(document, "mousedown", handleEvent);
35                     EventUtil.addHandler(document, "mousemove", handleEvent);
36                     EventUtil.addHandler(document, "mouseup", handleEvent);
37                 }
38                 }
39             } ();
40           window.onload = function () {
41                 DragDrop.enable(); DragDrop.disable();
42             }
1 <body>
2 <div class="draggable" style="position:absolute; background-color:Red; width:100px; height:100px;left:0px"></div>
3 <div class="draggable" style="position:absolute; background-color:Red; width:100px; height:100px;left:200px"></div>
4 <div class="draggable" style="position:absolute; background-color:Red; width:100px; height:100px;left:500px"></div>
5 <div class="draggable" style="position:absolute; background-color:Red; width:100px; height:100px;left:800px"></div>
6 </body>