draglist.js
上传用户:wenllgg125
上传日期:2020-04-09
资源大小:7277k
文件大小:6k
源码类别:

SCSI/ASPI

开发平台:

Others

  1. var dragobj={}
  2. window.onerror=function(){return false}
  3. function on_ini()
  4. {
  5. String.prototype.inc=function(s){return this.indexOf(s)>-1?true:false}
  6. var agent=navigator.userAgent
  7. window.isOpr=agent.inc("Opera")
  8. window.isIE=agent.inc("IE")&&!isOpr
  9. window.isMoz=agent.inc("Mozilla")&&!isOpr&&!isIE
  10. if(isMoz)
  11. {
  12. Event.prototype.__defineGetter__("x",function(){return this.clientX+2})
  13. Event.prototype.__defineGetter__("y",function(){return this.clientY+2})
  14. }
  15. basic_ini()
  16. }
  17. function basic_ini()
  18. {
  19. window.$=function(obj){return typeof(obj)=="string"?document.getElementById(obj):obj}
  20. window.$$=function(obj)
  21. {
  22.     if(typeof(obj) == "string")
  23.     {
  24.         var divColl = $("dom0").getElementsByTagName("div");
  25.         for(i = 0 ; i < divColl.length ; i++)
  26.         {
  27.             if(divColl[i].getAttribute("flag") == obj)
  28.                 return divColl[i];
  29.         }
  30.         return null;
  31.     }
  32.     else
  33.         return null;
  34. }
  35. window.oDel=function(obj){if($(obj)!=null){$(obj).parentNode.removeChild($(obj))}}
  36. }
  37. window.onload=function()
  38. {
  39. on_ini()
  40. var o=document.getElementsByTagName("h1")
  41. for(var i=0;i<o.length;i++){
  42. o[i].onmousedown=movedownEvent;
  43. }
  44. }
  45. function movedownEvent(e)
  46. {
  47. if(dragobj.o!=null)
  48. return false
  49. e=e||event
  50. dragobj.o=this.parentNode
  51. dragobj.xy=getxy(dragobj.o)
  52. dragobj.xx=new Array((e.x-dragobj.xy[1]),(e.y-dragobj.xy[0]))
  53. dragobj.o.style.width=dragobj.xy[2]+"px"
  54. dragobj.o.style.height=dragobj.xy[3]+"px"
  55. dragobj.o.style.left=(e.x-dragobj.xx[0])+"px"
  56. dragobj.o.style.top=(e.y-dragobj.xx[1])+"px"
  57. dragobj.o.style.position="absolute"
  58. var om=document.createElement("div")
  59. dragobj.otemp=om
  60. om.style.width=dragobj.xy[2]+"px"
  61. om.style.height=dragobj.xy[3]+"px"
  62. dragobj.o.parentNode.insertBefore(om,dragobj.o)
  63. return false
  64. }
  65. document.onselectstart=function(){return false}
  66. //window.onfocus=function(){document.onmouseup()}
  67. //window.onblur=function(){document.onmouseup()}
  68. document.onmouseup=function()
  69. {  
  70. if(dragobj.o!=null)
  71. {   
  72. dragobj.o.style.width="auto"
  73. dragobj.o.style.height="auto"
  74. if(!Obj1OverObj2(dragobj.o, $("dom0")))
  75. {
  76.     var checkbox = $("tid" + dragobj.o.getElementsByTagName("input")[0].value)
  77.     if(checkbox != null)
  78.         checkbox.checked = false;
  79.     oDel(dragobj.otemp)
  80.     oDel(dragobj.o);
  81.     dragobj={}
  82.     resetFlag();
  83.     return;
  84. }
  85. if(window.isIE)
  86. {
  87.             if(event.srcElement.tagName.toLowerCase() == "input")
  88.             {
  89.                 event.srcElement.click();
  90.                 event.srcElement.parentNode.innerHTML = event.srcElement.parentNode.innerHTML;
  91.             }
  92.         }
  93. strId = dragobj.o.id;
  94. check = dragobj.o.firstChild.firstChild.checked;
  95. dragobj.otemp.parentNode.insertBefore(dragobj.o,dragobj.otemp);
  96. dragobj.o.style.position=""
  97. oDel(dragobj.otemp)
  98. dragobj={}
  99. $(strId).firstChild.firstChild.checked = check;
  100. }
  101. }
  102. document.onmousemove=function(e)
  103. {
  104. e=e||event
  105. if(dragobj.o!=null)
  106. {
  107. dragobj.o.style.left=(e.x-dragobj.xx[0])+"px"
  108. dragobj.o.style.top=(e.y-dragobj.xx[1])+"px"
  109. createtmpl(e)
  110. }
  111. }
  112. function getxy(e)
  113. {
  114. var a=new Array()
  115. var t=e.offsetTop;
  116. var l=e.offsetLeft;
  117. var w=e.offsetWidth;
  118. var h=e.offsetHeight;
  119. while(e=e.offsetParent)
  120. {
  121. t+=e.offsetTop;
  122. l+=e.offsetLeft;
  123. }
  124. a[0]=t;a[1]=l;a[2]=w;a[3]=h
  125.   return a;
  126. }
  127. function inner(o,e){
  128. var a=getxy(o)
  129. if(e.x>a[1]&&e.x<(a[1]+a[2])&&e.y>(a[0]-document.body.scrollTop)&&e.y<(a[0]+a[3]-document.body.scrollTop)){
  130. if(e.y<(a[0]+a[3]/2))
  131. return 1;
  132. else
  133. return 2;
  134. }else
  135. return 0;
  136. }
  137. function createtmpl(e)
  138. {
  139. for(var i=0;i<getDom0ElementByDivLength()-1;i++)
  140. {
  141. if($$("f"+i)==dragobj.o)
  142. continue
  143. var b=inner($$("f"+i),e)
  144. if(b==0)
  145. continue
  146. dragobj.otemp.style.width=$$("f"+i).offsetWidth
  147. if(b==1)
  148. {
  149. $$("f"+i).parentNode.insertBefore(dragobj.otemp,$$("f"+i))
  150. }
  151. else
  152. {
  153. if($$("f"+i).nextSibling==null)
  154. {
  155. $$("f"+i).parentNode.appendChild(dragobj.otemp)
  156. }
  157. else
  158. {
  159. $$("f"+i).parentNode.insertBefore(dragobj.otemp,$$("f"+i).nextSibling)
  160. }
  161. }
  162. return
  163. }
  164. for(var j=0;j<1;j++)
  165. {
  166. if($("dom"+j).innerHTML.inc("div")||$("dom"+j).innerHTML.inc("DIV"))
  167. continue
  168. var op=getxy($("dom"+j))
  169. if(e.x>(op[1]+10)&&e.x<(op[1]+op[2]-10)){
  170. $("dom"+j).appendChild(dragobj.otemp)
  171. dragobj.otemp.style.width=(op[2]-10)+"px"
  172. }
  173. }
  174. }
  175. function resetFlag()
  176. {
  177.     var divColl = $("dom0").getElementsByTagName("div");
  178.     for(i = 0 ; i < divColl.length ; i++)
  179.     {
  180.         divColl[i].setAttribute("flag","f" + i);
  181.     }
  182. }
  183. function getDom0ElementByDivLength()
  184. {
  185.     return $("dom0").getElementsByTagName("div").length;
  186. }
  187. function findElement(hiddname,hiddvalue)
  188. {
  189.     var hiddColl = $("dom0").getElementsByTagName("input");
  190.     for(i = 0 ; i < hiddColl.length; i++)
  191.     {
  192.         if(hiddColl[i].name == hiddname && hiddColl[i].value == hiddvalue)
  193.             return true;
  194.     }
  195.     return false;
  196. }
  197. function addElement(hiddname,hiddvalue,title)
  198. {
  199.     var oNewNode = document.createElement("div");
  200.     oNewNode.className = "mo";
  201.     oNewNode.id = "m" + getDom0ElementByDivLength();
  202.     oNewNode.setAttribute("flag","f" + getDom0ElementByDivLength());
  203.     oNewNode.innerHTML = "<h1><input type='checkbox' name='" + hiddname + "' value='" + hiddvalue + "' checked>" + title + "</h1>";
  204.     oNewNode.firstChild.onmousedown=movedownEvent;
  205.     $("dom0").appendChild(oNewNode);
  206. }
  207. function removeElement(hiddname,hiddvalue)
  208. {
  209.     var hiddColl = $("dom0").getElementsByTagName("input");
  210.     for(i = 0 ; i < hiddColl.length; i++)
  211.     {
  212.         if(hiddColl[i].name == hiddname && hiddColl[i].value == hiddvalue)
  213.         {
  214.            window.oDel(hiddColl[i].parentNode.parentNode);
  215.            resetFlag();
  216.         }
  217.     }
  218. }
  219. function insertElement(hiddname,hiddvalue,title,check)
  220. {
  221.     if(check)
  222.     {
  223.         if(!findElement(hiddname,hiddvalue))
  224.         {
  225.             addElement(hiddname,hiddvalue,title);
  226.         }
  227.     }
  228.     else
  229.     {
  230.         if(findElement(hiddname,hiddvalue)) 
  231.         {
  232.             removeElement(hiddname,hiddvalue);
  233.         }
  234.     }
  235. }