亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

jQuery實現仿Google首頁拖動效果的方法

2024-05-06 16:19:16
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了jQuery實現仿Google首頁拖動效果的方法,涉及jQuery操作鼠標事件及div層的相關技巧,非常具有實用價值,需要的朋友可以參考下

本文實例講述了jQuery實現仿Google首頁拖動效果的方法。分享給大家供大家參考。具體如下:

這里用jQuery.js庫寫了一個仿Google首頁拖動的特效代碼

 

 
  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <meta http-equiv="content-type" content="text/html; charset=utf-8"/> 
  5. <title>用JQUERY實現的仿Google首頁拖動特效</title> 
  6. <style type="text/css"
  7. #div_width{ 
  8. width:98%; 
  9. margin:0 auto; 
  10. *{ 
  11. margin:0px; 
  12. padding:0px; 
  13. #div_left,#div_right,#div_center{ 
  14. float:left; 
  15. width:28%; 
  16. height:900px; 
  17. margin:0 3px; 
  18. #div_center{ 
  19. width:38%; 
  20. .can_move{ 
  21. border:1px solid blue; 
  22. width:100%; 
  23. margin:5px 0; 
  24. min-height:150px; 
  25. .center_width{ 
  26. height:200px; 
  27. p{ 
  28. height:30px; 
  29. color:#fff; 
  30. line-height:30px; 
  31. background:#000; 
  32. cursor:move; 
  33. #xuxian{ /*虛線框*/ 
  34. border:1px dashed #000; 
  35. margin:5px 0; 
  36. </style> 
  37. <script src="js/jquery.js"></script> 
  38. <script> 
  39. //<![CDATA[ 
  40. window.onload=function(){ 
  41. var mouse_down=false//鼠標時候按下 
  42. var x_old=null//按下鼠標時鼠標的坐標 
  43. var y_old=null
  44. var div_move=null//正在移動的div 
  45. var div_move_width=null//正在移動的div的寬 
  46. var div_move_height=null//正在移動的div的高 
  47. var xuxian="<div id='xuxian'></div>"//虛線框 
  48. document.oncontextmenu=new Function('event.returnValue=false;'); 
  49. //禁止右鍵 
  50. document.onselectstart=new Function('event.returnValue=false;'); 
  51. //禁止選中 
  52. //當鼠標按下的時候 
  53. $("p").mousedown(function(e){ 
  54. mouse_down=true//鼠標按下 
  55. div_move=$(this).parent(); //指定當前div為正在移動的div 
  56. div_move_width=div_move.width(); 
  57. div_move_height=div_move.height(); 
  58. x_old=e.pageX-$(this).offset().left; //獲取鼠標坐標 
  59. y_old=e.pageY-$(this).offset().top; 
  60. //把當前div的position改成absolute 
  61. div_move.css({ 
  62. position:'absolute'
  63. zIndex:'10'
  64. width:div_move_width, 
  65. height:div_move_height, 
  66. top:div_move.offset().top, 
  67. left:div_move.offset().left 
  68. }); 
  69. //將虛線框添加到正在移動的div之前的位置 
  70. div_move.before(xuxian); 
  71. $("#xuxian").css({ 
  72. width:'100%'
  73. height:div_move_height 
  74. }); 
  75. }); 
  76. //移動鼠標 
  77. $(document).mousemove(function(e){ 
  78. if(!mouse_down) return false
  79. var _x=e.pageX; 
  80. var _y=e.pageY; 
  81. var div_right_div=$("#div_right>div").not(div_move).not("#xuxian"); 
  82. div_move.css({ //改變正在移動div的top和left 
  83. top:_y-y_old, 
  84. left:_x-x_old 
  85. }); 
  86. /*注意,因為鼠標當前始終在正在移動的div上面, 
  87. 所以,鼠標移動不會觸發其他元素的mouseenter,mouseleave,mouseover 
  88. 和mouseout事件,要想達到同樣的效果, 
  89. 只能根據鼠標的坐標來判斷鼠標是否進入其他元素*/ 
  90. var left_left=$("#div_left").offset().left; 
  91. //確定左邊div_left容器的位置 
  92. var left_width=$("#div_left").width(); 
  93. var right_left=$("#div_right").offset().left; 
  94. //確定右邊div_right容器的位置 
  95. var right_width=$("#div_right").width(); 
  96. var center_left=$("#div_center").offset().left; 
  97. //確定中間div_center容器的位置 
  98. var center_width=$("#div_center").width(); 
  99. //判斷鼠標坐標是否進入左邊div_left容器 
  100. if(_x>left_left&&_x<(left_left+left_width)){ 
  101. /*選定左邊div_left容器下的最后一個可移動div, 
  102. 不包含當前正在移動的div元素和虛線框*/ 
  103. var div_left_last=$("#div_left>div").not(div_move).not("#xuxian").filter(":last"); 
  104. if(div_left_last.length>=1){ 
  105. //判斷時候左邊div_left容器下時候有可移動div元素 
  106. if(_y>(div_left_last.offset().top+div_left_last.height())){ 
  107. //判斷鼠標是否在左邊div_left容器最后一個元素的下邊 
  108. $("#xuxian").remove(); //如果是,移除之前添加的虛線框 
  109. div_left_last.after(xuxian); 
  110. //把虛線框添加為左邊div_left容器的最后一個子元素 
  111. $("#xuxian").css({ //設定虛線框的高和寬 
  112. width:'100%'
  113. height:div_move_height 
  114. }); 
  115. }else
  116. //如果鼠標不在左邊div_left容器最后一個元素的下邊, 
  117. //那么,循環判定鼠標是否進入左邊div_left容器下的可移動div元素里面 
  118. var div_left_div=$("#div_left>div").not(div_move).not("#xuxian"); 
  119. for(var i=0;i<div_left_div.length;i++){ 
  120. if(_y>div_left_div.eq(i).offset().top&&(_y<div_left_div.eq(i).offset().top+div_left_div.eq(i).height())){ 
  121. $("#xuxian").remove(); 
  122. //如果是,刪除之前添加的虛線框 
  123. div_left_div.eq(i).before(xuxian); 
  124. //把虛線框添加到當前鼠標進入的div元素的前面 
  125. $("#xuxian").css({ //設定虛線框的高和寬 
  126. width:'100%'
  127. height:div_move_height 
  128. }); 
  129. break//退出循環 
  130. }else{//如果左邊div_left容器下面沒有任何可移動div元素 
  131. var div_left_div=$("#div_left>div").not(div_move).not("#xuxian"); 
  132. if(div_left_div.length==0){ 
  133. $("#xuxian").remove(); //移除之前添加的虛線框 
  134. $("#div_left").append(xuxian); 
  135. //把虛線框添加為左邊div_left容器的子元素 
  136. $("#xuxian").css({ 
  137. width:'100%'
  138. height:div_move_height 
  139. }); 
  140. }else if(_x>center_left&&_x<(center_left+center_width)){ 
  141. //判斷鼠標是否進入中間div_center容器 
  142. /*選定中間div_center容器下的最后一個可移動div, 
  143. 不包含當前正在移動的div元素和虛線框*/ 
  144. var div_center_last=$("#div_center>div").not(div_move).not("#xuxian").filter(":last"); 
  145. if(div_center_last.length>=1){ 
  146. //判斷中間div_center容器的下面時候有可移動div子元素 
  147. if(_y>(div_center_last.offset().top+div_center_last.height())){ 
  148. //判斷鼠標是否在中間div_center容器的最后一個可移動div子元素的下邊 
  149. $("#xuxian").remove(); 
  150. //如果是,刪除之前添加的虛線框 
  151. div_center_last.after(xuxian); 
  152. //把虛線框添加為中間div_center容器的最后一個div子元素 
  153. $("#xuxian").css({ //設定虛線框的寬和高 
  154. width:'100%'
  155. height:div_move_height 
  156. }); 
  157. }else
  158. //如果鼠標不在中間div_center容器最后一個可移動div子元素的下邊, 
  159. //則循環判斷鼠標進入的是哪一個iv子元素 
  160. var div_center_div=$("#div_center>div").not(div_move).not("#xuxian"); 
  161. for(var i=0;i<div_center_div.length;i++){ 
  162. if(_y>div_center_div.eq(i).offset().top&&(_y<div_center_div.eq(i).offset().top+div_center_div.eq(i).height())){ 
  163. $("#xuxian").remove(); 
  164. //找到鼠標進入的div子元素,刪除之前添加的虛線框 
  165. div_center_div.eq(i).before(xuxian); 
  166. //把虛線框添加到當前鼠標進入的div子元素的前面 
  167. $("#xuxian").css({ 
  168. //設定虛線框的寬度和高度 
  169. width:'100%'
  170. height:div_move_height 
  171. }); 
  172. break//退出循環 
  173. }else
  174. //如果中間div_center容器的中間沒有可移動的div子元素 
  175. var div_center_div=$("#div_center>div").not(div_move).not("#xuxian");  
  176. if(div_center_div.length==0){ 
  177. $("#xuxian").remove(); 
  178. //刪除之前添加的虛線框 
  179. $("#div_center").append(xuxian); 
  180. //把虛線框添加為中間div_center的最后一個div元素 
  181. $("#xuxian").css({ 
  182. width:'100%'
  183. height:div_move_height 
  184. }); 
  185. }else if(_x>right_left&&_x<(right_left+right_width)){ 
  186. //判斷鼠標是否進入右邊div_right容器 
  187. /*選定右邊div_right容器下的最后一個可移動div, 
  188. 不包含當前正在移動的div元素和虛線框*/ 
  189. var div_right_last=$("#div_right>div").not(div_move).not("#xuxian").filter(":last"); 
  190. if(div_right_last.length>=1){ 
  191. //判斷右邊div_right容器下邊是否有可移動的div子元素 
  192. if(_y>(div_right_last.offset().top+div_right_last.height())){ 
  193. //判斷鼠標時候在右邊div_right容器最后一個可移動div元素的下邊 
  194. $("#xuxian").remove(); 
  195. //如果是,刪除之前添加的虛線框 
  196. div_right_last.after(xuxian); 
  197. //添加虛線框為右邊div_right容器的最后一個元素 
  198. $("#xuxian").css({ 
  199. //設定虛線框的寬和高 
  200. width:'100%'
  201. height:div_move_height 
  202. }); 
  203. }else
  204. //如果鼠標不在右邊div_right容器最后一個可移動div元素的下邊, 
  205. //則循環判斷鼠標進入到右邊div_right容器下哪個可移動div元素里面 
  206. for(var i=0;i<div_right_div.length;i++){ 
  207. if(_y>div_right_div.eq(i).offset().top&&(_y<div_right_div.eq(i).offset().top+div_right_div.eq(i).height())){ 
  208. $("#xuxian").remove(); 
  209. //找到鼠標進入的div元素,刪除之前添加的虛線框 
  210. div_right_div.eq(i).before(xuxian); 
  211. //把虛線框添加到鼠標進入的div元素的前面 
  212. $("#xuxian").css({ 
  213. //設定寬和高 
  214. width:'100%'
  215. height:div_move_height 
  216. }); 
  217. break
  218. //退出循環 
  219. }else
  220. //如果右邊div_right元素的下邊沒有可移動的div子元素 
  221. if(div_right_div.length==0){ 
  222. $("#xuxian").remove(); 
  223. //刪除之前添加的虛線框 
  224. $("#div_right").append(xuxian); 
  225. //把虛線框添加為右邊div_right容器的子元素 
  226. $("#xuxian").css({ 
  227. //設定虛線框的寬和高 
  228. width:'100%'
  229. height:div_move_height 
  230. }); 
  231. }).mouseup(function(){ 
  232. mouse_down=false//鼠標松開 
  233. $("#xuxian").before(div_move); 
  234. //將當前正在移動的div元素添加到虛線框的前面 
  235. div_move.css({ 
  236. //更改正在移動div元素的position和寬 
  237. position:'static'
  238. width:'100%' 
  239. }); 
  240. $("#xuxian").remove(); 
  241. //刪除虛線框 
  242. return false
  243. }); 
  244. //]]> 
  245. </script> 
  246. </head> 
  247. <body> 
  248. <div id="div_width"
  249. <div id="div_left"
  250. <div class="can_move"
  251. <p>音樂</p> 
  252. </div> 
  253. <div class="can_move"
  254. <p>活動</p> 
  255. </div> 
  256. </div> 
  257. <div id="div_center"
  258. <div class="can_move center_width"
  259. <p>科技</p> 
  260. </div> 
  261. </div> 
  262. <div id="div_right"
  263. <div class="can_move"
  264. <p>新聞</p> 
  265. </div> 
  266. <div class="can_move"
  267. <p>元素</p> 
  268. </div> 
  269. </div> 
  270. </div> 
  271. </body> 
  272. </html> 

希望本文所述對大家的jQuery程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品视频在线播放免| 国产亚洲人成a一在线v站| 美女扒开尿口让男人操亚洲视频网站| 日本国产欧美一区二区三区| 日韩成人在线视频| 日韩中文字幕网站| 国产日韩精品在线播放| 日韩精品免费在线视频观看| 91久久久久久久久| xxxx欧美18另类的高清| 91色视频在线观看| 亚洲黄色www| 97超级碰碰碰久久久| 欧洲美女免费图片一区| 国产精品入口福利| 国产91精品在线播放| 午夜精品在线观看| 欧美日韩人人澡狠狠躁视频| 亚洲午夜av久久乱码| 久久综合电影一区| 麻豆乱码国产一区二区三区| 欧洲美女免费图片一区| 不卡av电影在线观看| 91在线免费观看网站| 人人澡人人澡人人看欧美| 亚洲精品成人免费| 九九精品在线观看| 亚洲欧美日韩中文视频| 乱亲女秽乱长久久久| 国产成人一区三区| 欧美日韩在线第一页| 伊人成人开心激情综合网| 插插插亚洲综合网| 久久乐国产精品| 91夜夜未满十八勿入爽爽影院| 国产欧美精品一区二区三区-老狼| 日韩av在线电影网| 亚洲国产成人久久综合一区| 欧美国产精品va在线观看| 日韩精品福利在线| 尤物九九久久国产精品的分类| 久久色在线播放| 欧美高清一级大片| 欧美电影免费观看网站| 日韩中文视频免费在线观看| 亚洲精品乱码久久久久久金桔影视| 亚洲视频在线观看| 亚洲美女久久久| 国产不卡精品视男人的天堂| 欧美国产在线电影| 日本国产欧美一区二区三区| 日韩有码在线电影| 国产精品美女无圣光视频| 成人免费福利在线| 亚洲免费电影一区| 91久久在线观看| 成人在线免费观看视视频| 国产精品午夜视频| 欧美日韩亚洲一区二区| 欧美成人性色生活仑片| 九九热精品在线| 欧美区在线播放| 午夜精品久久久久久久99热| 欧美激情一区二区三区成人| 九九热精品视频国产| 国模私拍一区二区三区| 久久综合久久美利坚合众国| 亚洲天堂网站在线观看视频| 亚洲欧美日韩第一区| 97成人精品视频在线观看| 日韩在线免费高清视频| 亚洲一区久久久| 成人写真视频福利网| 日韩精品视频在线观看免费| 97国产精品人人爽人人做| 992tv成人免费视频| 久久精品成人动漫| 亚洲国产精品资源| 亚洲欧美福利视频| 欧美日韩一区二区三区在线免费观看| 亚洲视频视频在线| 亚洲欧美日韩天堂| 国产视频在线一区二区| 97视频在线观看免费| 国模私拍视频一区| 国产精品综合网站| 黄色一区二区在线观看| 欧美电影免费在线观看| 国产日本欧美一区二区三区在线| 国产精品999| 欧美极品在线播放| 国产亚洲精品激情久久| 亚洲一区二区三区sesese| 国产精品日韩在线观看| 亚洲尤物视频网| 日韩大片在线观看视频| 久久影视电视剧凤归四时歌| 国产丝袜一区二区| 久久久国产成人精品| 国产视频精品一区二区三区| 88xx成人精品| 日韩高清免费观看| 国模精品视频一区二区三区| 国产啪精品视频| 亚洲欧美国产一区二区三区| 91日本在线视频| 亚洲综合精品伊人久久| 日本电影亚洲天堂| 45www国产精品网站| 国产91色在线| 日韩美女在线观看| 亚洲精品一区中文字幕乱码| 久久亚洲欧美日韩精品专区| …久久精品99久久香蕉国产| 伊人成人开心激情综合网| 欧美性xxxxx极品| 欧美激情一级欧美精品| 美女少妇精品视频| 国产精品毛片a∨一区二区三区|国| 久久久免费精品| 亚洲欧洲偷拍精品| 神马国产精品影院av| 国产精品久久久久久久天堂| 国产专区欧美专区| 国产成人精品视频| 国产精品手机播放| 欧美黑人一区二区三区| 日韩av一卡二卡| 欧美理论片在线观看| 日本成人激情视频| www欧美xxxx| 91免费人成网站在线观看18| 久久精品亚洲国产| 日本不卡高字幕在线2019| 亚洲人成电影网站色www| 亚洲精品自在久久| 这里只有精品丝袜| 亚洲精选中文字幕| 欧美日韩一区二区在线| 日韩av在线网站| 91久久久在线| 国产欧美在线看| 日本精品久久电影| 久久精品视频在线播放| 国产精品稀缺呦系列在线| 久久影院资源网| 欧美高跟鞋交xxxxhd| 欧美在线性视频| 一本一本久久a久久精品牛牛影视| 欧美精品久久久久久久| 久久久亚洲福利精品午夜| 欧美大片在线看| 欧美野外wwwxxx| 欧美激情亚洲精品| 久久精品国产69国产精品亚洲| 亚洲国产私拍精品国模在线观看| 日日摸夜夜添一区| 色综合久久88色综合天天看泰| 午夜精品视频在线| 国产一区红桃视频| 奇门遁甲1982国语版免费观看高清| 亚洲一区美女视频在线观看免费| 国产精品扒开腿做| 国产精自产拍久久久久久蜜|