Javascript 层拖动--灵活版

最近做项目对Javascript要求较高,所以对它慢慢的又熟悉了。

下面放上一个较为灵活的层拖动Demo代码,一为收藏整理,二希望能对需要的朋友起一点作用,哈哈……

  1. <html>
  2. <head>
  3.     <title></title>
  4.     <style type="text/css">
  5.         #l1
  6.         {
  7.             height: 20px;
  8.             border: 1px solid #ccc;
  9.             background: #f00;
  10.             z-index: 1;
  11.         }
  12.         #l2
  13.         {
  14.             position: absolute;
  15.             top: 150px;
  16.             left: 150px;
  17.             width: 100px;
  18.             height: 150px;
  19.             border: 1px solid #666;
  20.             background: #0f0;
  21.             z-index: 2;
  22.         }
  23.         #l3
  24.         {
  25.             width: 100px;
  26.             height: 150px;
  27.             border: 1px solid #999;
  28.             background: #00f;
  29.             z-index: 3;
  30.         }
  31.     </style>
  32.     <script type="text/javascript">
  33.     var x,y,z;
  34.     var down=false;
  35.     var oEvent,oDragTarget;
  36.     function init(targetID){
  37.          oEvent=event.srcElement;   //获取焦点对象
  38.          oDragTarget=document.getElementById(targetID);
  39.          oEvent.setCapture();           //设置鼠标捕捉
  40.          z=oEvent.style.zIndex;         //取得原z轴位置
  41.          oEvent.style.zIndex=100;       //设定在最上层
  42.          x=event.offsetX;            //获取鼠标指针相对于触发事件的对象的x位置
  43.          y=event.offsetY;            //获取鼠标指针相对于触发事件的对象的y位置
  44.          down=true;                  //设置鼠标状态为按下状态
  45.      }
  46.     function moveIt(){
  47.         if(down&event.srcElement==oEvent){
  48.             with(oDragTarget.style){
  49.                  position="absolute";
  50.                  posLeft=document.body.scrollLeft+event.x-x;
  51.                  posTop=document.body.scrollTop+event.y-y;
  52.              }
  53.          }
  54.      }
  55.     function stopDrag(){
  56.          down=false;
  57.          oEvent.style.zIndex=z;
  58.          oEvent.releaseCapture();//释放鼠标捕捉
  59.      }
  60.     </script>
  61. </head>
  62. <body>
  63.     <div id="tt" style="width: 300px; height: 300px; background-color: Gray;">
  64.         <div id="l1" οnmοusedοwn="init('tt')" οnmοusemοve="moveIt()" οnmοuseup="stopDrag()">
  65.             level1</div>
  66.     </div>
  67.     <div id="l2" οnmοusedοwn="init('l2')" οnmοusemοve="moveIt()" οnmοuseup="stopDrag()">
  68.         level2</div>
  69.     <div id="l3" οnmοusedοwn="init('l3')" οnmοusemοve="moveIt()" οnmοuseup="stopDrag()">
  70.         level3</div>
  71. </body>
  72. </html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值