跨IE、FireFox的鼠標選框表現(仿Vista)

同時也兼容HTML與XHTML

 

  1. <html>
  2. <head>
  3. <script>
  4. var _isDrag = false;
  5. var _dragObj;
  6. var _x,_y;
  7. var _scrollLeft,_scrollTop;
  8. function clickDIV(e){
  9.     var _event = e || window.event;
  10.     
  11.     _dragObj = document.getElementById("dragDivId");
  12.     _dragBg = document.getElementById("dragDivBg");
  13.     
  14.     _scrollLeft = document.compatMode == "CSS1Compat" ? document.documentElement.scrollLeft : document.body.scrollLeft;
  15.     _scrollTop = document.compatMode == "CSS1Compat" ? document.documentElement.scrollTop : document.body.scrollTop;
  16.     _x = _scrollLeft + _event.clientX;
  17.   _y = _scrollTop + _event.clientY;
  18.   
  19.   _dragObj.style.fontSize = "0px";
  20.   _dragObj.style.display = "block";
  21.   _dragObj.style.left = _x + "px"; 
  22.   _dragObj.style.top = _y + "px";
  23.   _dragObj.style.borderColor = "#3399ff";
  24.   _dragObj.style.borderWidth = "1px"
  25.   _dragObj.style.borderStyle = "solid";
  26.   _dragObj.style.width = "0px";
  27.   _dragObj.style.height = "0px";    
  28.   
  29.   _dragBg.style.backgroundColor = "#78b4f0";
  30.   _dragBg.style.filter = "alpha(opacity=55)";
  31.   _dragBg.style.opacity = "0.55";
  32.   _dragBg.style.width = "0px";
  33.   _dragBg.style.height = "0px";
  34.   
  35.     _isDrag = true;
  36.     
  37.     if(document.addEventListener){
  38.         document.addEventListener("mousemove",dragDiv,false);
  39.         document.addEventListener("mouseup",unclickDIV,false);
  40.     }else{
  41.         document.attachEvent("onmousemove",dragDiv);
  42.         document.attachEvent("onmouseup",unclickDIV);
  43.       _dragBg.setCapture();
  44.     }
  45. }
  46.    
  47. function dragDiv(e){
  48.     if(_isDrag){
  49.       var _event = e || window.event;
  50.       var _divWidth = _scrollLeft + _event.clientX - _x;
  51.       var _divHeight = _scrollTop + _event.clientY - _y;
  52.       
  53.       if(_divWidth < 0){
  54.             _dragObj.style.left = _scrollLeft + _event.clientX + "px";
  55.       }else{
  56.             _dragObj.style.left = _x + "px";
  57.       }
  58.       if(_divHeight < 0){
  59.             _dragObj.style.top = _scrollTop + _event.clientY + "px";
  60.       }else{
  61.             _dragObj.style.top = _y + "px";
  62.       }
  63.       
  64.       _dragObj.style.width = Math.abs(_divWidth) + "px";
  65.       _dragBg.style.width = Math.abs(_divWidth) + "px";
  66.       _dragObj.style.height = Math.abs(_divHeight) + "px";
  67.       _dragBg.style.height = Math.abs(_divHeight) + "px";
  68.     }
  69. }
  70. function unclickDIV(e){
  71.     _isDrag = false;
  72.     _dragObj.style.display="none";
  73.     if(document.removeEventListener){
  74.         document.removeEventListener("mousemove",dragDiv,false);
  75.         document.removeEventListener("mouseup",unclickDIV,false);
  76.     }else{
  77.         _dragBg.releaseCapture();
  78.     }
  79. }
  80. window.onload = function(){
  81.     var _divSelect = document.createElement("div");
  82.     _divSelect.setAttribute("id","dragDivId");
  83.     _divSelect.style.cssText="position:absolute;display:none;z-index:10";
  84.     document.body.appendChild(_divSelect);
  85.     var _divBg = document.createElement("div");
  86.     _divBg.setAttribute("id","dragDivBg");
  87.     _divSelect.appendChild(_divBg);
  88.     document.body.onmousedown = clickDIV;
  89. }
  90. </script>
  91. </head>
  92. <body>
  93. </body>
  94. </html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章