jQuery拖动div,移动div,弹出层

代码演示: 

 http://www.imqing.com/demo/movediv.html

大概原理:  

      使div的position为绝对定位absolute,然后控制其top与left值,需要监听鼠标事件,主要用到mousedown,    mousemove,    mouseup。

      在mousedown后,记录mousedown时鼠标与需要移动的div的位置,然后取得两者之差,得到在鼠标移动后,div的位置。即:

    

 
 
  1. left = 当前鼠标位置.x - (鼠标点击时的.x值 - div的初始位置x值)  
  2. top = 当前鼠标位置.y - (鼠标点击时的.y值 - div的初始位置y值) 

代码:

 

 
 
  1. <!DOCTYPE html> 
  2. <html lang="zh"> 
  3. <head> 
  4.     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 
  5.     <title>Qing's Web</title> 
  6.     <script src="./jquery-1.7.2.min.js" type="text/javascript"></script> 
  7.     <style type="text/css"> 
  8.     .footer {  
  9.             position: fixed;  
  10.             bottom: 0;  
  11.             width: 100%;  
  12.         }  
  13.         .moveBar {  
  14.             position: absolute;  
  15.             width: 250px;  
  16.             height: 300px;  
  17.             background: #666;  
  18.             border: solid 1px #000;  
  19.         }  
  20.         #banner {  
  21.             background: #52CCCC;  
  22.             cursor: move;  
  23.         }  
  24.     </style> 
  25. </head> 
  26. <body style="padding-top: 50px;"> 
  27.  
  28. <div class="moveBar"> 
  29.     <div id="banner">按住此处移动当前div</div> 
  30.     <div class="content">这里是其它内容</div> 
  31. </div> 
  32. <div class="footer"> 
  33.     <p align="center" class="label">ALL Rights Reserved Qing 版权所有</p> 
  34. </div> 
  35. <script> 
  36.     jQuery(document).ready(  
  37.             function () {  
  38.                 $('#banner').mousedown(  
  39.                         function (event) {  
  40.                             var isMove = true;  
  41.                             var abs_x = event.pageX - $('div.moveBar').offset().left;  
  42.                             var abs_y = event.pageY - $('div.moveBar').offset().top;  
  43.                             $(document).mousemove(function (event) {  
  44.                                         if (isMove) {  
  45.                                             var obj = $('div.moveBar');  
  46.                                             obj.css({'left':event.pageX - abs_x, 'top':event.pageY - abs_y});  
  47.                                         }  
  48.                                     }  
  49.                             ).mouseup(  
  50.                                     function () {  
  51.                                         isMove = false;  
  52.                                     }  
  53.                             );  
  54.                         }  
  55.                 );  
  56.             }  
  57.     );  
  58. </script> 
  59. </body> 
  60. </html> 

其实代码量也不多的,嘿嘿。要点就是需要移动的div的position是绝对定位,然后检测鼠标事件就行了。嘿嘿。

本文出自 “Qing's web” 博客,请务必保留此出处http://qings.blog.51cto.com/4857138/998878

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值