JavaScript可拖动DIV

  1. <style>
  2. .fugai{
  3.     position:absolute;
  4.     z-index:100;
  5.     left:0px;
  6.     top:0px;
  7.     filter:alpha(opacity=10);/*IE兼容*/
  8.     opacity:0.1;/*FF兼容*/
  9.     -moz-opacity:0.1;
  10.     background-color:red;
  11. }
  12. .choose{
  13.     position:absolute;
  14.     z-index:101;
  15.     width:300px;
  16.     height:70px;
  17.     background-color:blue;
  18. }
  19. .move{
  20.     width:300px;
  21.     height:20px;
  22.     cursor:hand;
  23.     background-color:green;
  24.     border:solid black;
  25. }
  26. </style>
  27. <body>
  28. <a href="javascript:void(null);" onclick="show();" id="address">选择地点</a>
  29. <div id="fugai" class="fugai" style="display:none;">
  30. </div>
  31. <div id="ch" style="display:none;left:50px;top:20px;" class="choose">
  32.     <div class="move" onmousedown="move(this.parentNode,event);";>拖动我</div><br>
  33.     <a href="javascript:void(null);" onclick="choose('北京');">北京</a>  
  34.     <a href="javascript:void(null);" onclick="choose('南京');">南京</a>  
  35. </div>
  36. </body>
  37. <script>
  38.     function show(){
  39.         document.getElementById("fugai").style.display="block";
  40.         document.getElementById("fugai").style.width=document.body.clientWidth;
  41.         document.getElementById("fugai").style.height=document.body.clientHeight;
  42.         document.getElementById("ch").style.display="";
  43.         document.getElementById("ch").style.left="50px";
  44.         document.getElementById("ch").style.top="20px";
  45.     }
  46.     function choose(value){
  47.         document.getElementById("fugai").style.display="none";
  48.         document.getElementById("ch").style.display="none";
  49.         document.getElementById("address").firstChild.data=value;
  50.     }
  51.     function move(element,event){
  52.         var x=parseInt(element.style.left);
  53.         var y=parseInt(element.style.top);
  54.         var maxLeft=parseInt(document.body.clientWidth)-parseInt(element.clientWidth);
  55.         var maxTop=parseInt(document.body.clientHeight)-parseInt(element.clientHeight);
  56.         var deltaX=event.clientX-x;
  57.         var deltaY=event.clientY-y;
  58.         //添加临时事件
  59.         if(document.addEventListener){//2级DOM
  60.             document.addEventListener("mousemove",moveHandler,true);
  61.             document.addEventListener("mouseup",upHandler,true);
  62.         }else if(document.attachEvent){//IE5+
  63.             document.attachEvent("onmousemove",moveHandler);
  64.             document.attachEvent("onmouseup",upHandler);
  65.         }else{//IE4
  66.             var oldonmousemove=document.onmousemove;
  67.             var oldonmouseup=document.onmouseup;
  68.             document.onmousemove=moveHandler;
  69.             document.onmouseup=upHandler;
  70.         }
  71.         //我们处理该事件,不让其他元素见到它
  72.         if(event.preventDefault){//2级DOM
  73.             event.preventDefault();
  74.         }else{//IE
  75.             event.returnValue=false;
  76.         }
  77.         //鼠标移动事件
  78.         function moveHandler(e){
  79.             if(!e){//IE
  80.                 e=window.event;
  81.             }
  82.             element.style.left=(e.clientX-deltaX)+"px";
  83.             element.style.top=(e.clientY-deltaY)+"px";
  84.             var left=parseInt(element.style.left);
  85.             var top=parseInt(element.style.top);
  86.             if(left<0){
  87.                 element.style.left="0px";
  88.             }
  89.             if(left>maxLeft){
  90.                 element.style.left=maxLeft+"px";
  91.             }
  92.             if(top<0){
  93.                 element.style.top="0px";
  94.             }
  95.             if(top>maxTop){
  96.                 element.style.top=maxTop+"px";
  97.             }
  98.             if(e.stopPropagation){//2级DOM
  99.                 e.stopPropagation();
  100.             }else{//IE
  101.                 e.cancelBubble=true;
  102.             }
  103.         }
  104.         //鼠标按键弹起
  105.         function upHandler(e){
  106.             if(!e){
  107.                 e=window.event;
  108.             }
  109.             if(document.removeEventListener){//2级DOM
  110.                 document.removeEventListener("mouseup",upHandler,true);
  111.                 document.removeEventListener("mousemove",moveHandler,true);
  112.             }else if(document.detachEvent){//IE5+
  113.                 document.detachEvent("onmouseup",upHandler);
  114.                 document.detachEvent("onmousemove",moveHandler);
  115.             }else{//IE4
  116.                 document.onmouseup=oldonmouseup;
  117.                 document.onmousemove=oldonmousemove;
  118.             }
  119.             if(e.stopPropagation){//2级DOM
  120.                 e.stopPropagation();
  121.             }else{//IE
  122.                 e.cancelBubble=true;
  123.             }
  124.         }
  125.     }
  126. </script>
 

http://blog.csdn.net/lip009/archive/2007/10/19/1833720.aspx



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值