国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

jQuery制作可自定義大小的拼圖游戲

2024-05-06 16:17:51
字體:
供稿:網(wǎng)友

這篇文章主要介紹了jQuery制作可自定義大小的拼圖游戲的代碼,非常的簡單實(shí)用,雖然還只是局限于數(shù)字順序的拼圖,后續(xù)慢慢完善上圖片,但還是分享給大家,有需要的小伙伴可以參考下。

我把大小限制在了3-10之間,實(shí)在閑的,或者有自虐傾向的可以試試改下。。

本來準(zhǔn)備弄圖片上去的,還沒弄..

pintu.html

 

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  2. <html xmlns="http://www.w3.org/1999/xhtml"
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5. <title>拼圖</title> 
  6. <style type="text/css"
  7. #pt_main{ 
  8. margin:0 auto; 
  9. border:2px solid #000;} 
  10. #menu{ 
  11. text-align:center;} 
  12. #pt_main div{ 
  13. padding:0px; 
  14. margin:0px; 
  15. float:left; 
  16. line-height:200px; 
  17. font-size:100px; 
  18. text-align:center;} 
  19. #pt_main div:hover{ 
  20. cursor:pointer;} 
  21. .hui{ 
  22. background:#CCC;} 
  23. </style> 
  24.  
  25. <script src="http://code.jquery.com/jquery-latest.js"></script> 
  26. <script type="text/javascript"
  27. //div邊框?qū)挾?/span> 
  28. var border_w=2; 
  29. //div大小 
  30. var size=50; 
  31. //是否過關(guān) 
  32. var st=false
  33. //背景圖片地址(功能還沒寫) 
  34. var imgurl=''
  35. //灰色塊的位置 
  36. var hui=0; 
  37. //游戲?qū)捀?/span> 
  38. var width=3; 
  39. var height=3; 
  40. $(function(){ 
  41. init(); 
  42. }); 
  43. //判斷兩個(gè)數(shù)字能不能交換 
  44. function ut_jh(a,b){ 
  45. if(Math.abs(a-b)==width){ 
  46. return true
  47. if(Math.abs(a-b)==1&& ut_line(a,b,width) ){ 
  48. return true
  49. return false
  50. //判斷兩個(gè)數(shù)字是否在同一行 
  51. function ut_line(a,b,width){ 
  52. if(parseInt(a/width)==parseInt(b/width)){ 
  53. return true
  54. }else
  55. return false;  
  56. //生成可交換的集合(可與灰色塊交換的集合) 
  57. function ut_sc(a){ 
  58. //最多為4個(gè) 
  59. var li=new Array(); 
  60. var i=0; 
  61. if(a-width>=0){ 
  62. li[i++]=a-width; 
  63. if(a+width<=width*height-1){ 
  64. li[i++]=a+width;  
  65. if(ut_line(a,a-1,width) && a-1>=0){ 
  66. li[i++]=a-1;  
  67. if(ut_line(a,a+1,width) && a+1<=width*height-1){ 
  68. li[i++]=a+1;  
  69. //alert(a+'-length:'+li.length) 
  70. return li; 
  71. //塊的點(diǎn)擊事件 
  72. function pt_click(){ 
  73. if(!st){ 
  74. return false
  75. //點(diǎn)擊塊的索引 
  76. var index=get().index($(this)); 
  77.  
  78. if(ut_jh(hui,index)){ 
  79. jh(hui,index); 
  80.  
  81. //判斷是否過關(guān) 
  82. pd(); 
  83.  
  84.  
  85. //兩塊交換 
  86. function jh(hui_,index_){ 
  87. //alert(hui+1+","+(index_+1)); 
  88. var list=get();//所有塊 
  89. var h=list.eq(hui_);//灰色塊 
  90. var d=list.eq(index_);//點(diǎn)擊的塊 
  91.  
  92. //交換樣式 
  93. h.removeClass(); 
  94. d.addClass('hui'); 
  95. h.html(d.html()); 
  96. d.html(''); 
  97. hui=index_; 
  98.  
  99. //交換各自屬性 
  100. tg=h.attr('tg'); 
  101. h.attr('tg',d.attr('tg')); 
  102. d.attr('tg',tg); 
  103.  
  104. function init(){ 
  105. //不能太小... 
  106. if(width<3||height<3){ 
  107. return false;  
  108. hui=width*height-1; 
  109. var pp=$("#pt_main"); 
  110. pp.html(''); 
  111. //創(chuàng)建并初始化 
  112. var k=width*size+border_w*width*2; 
  113. var g=height*size+border_w*height*2; 
  114. pp.css({'width':k,'height':g}); 
  115. for(i=0;i<width*height;i++){ 
  116. var n=$("<div>"+(i+1)+"</div>");  
  117. n.css({'width':size, 
  118. 'height':size, 
  119. border:border_w+'px solid #000'
  120. lineHeight:size+'px'
  121. fontSize:parseInt(size/3)+'px' 
  122. }); 
  123. if(imgurl!=''){ 
  124.  
  125. pp.append(n); 
  126. //alert(i) 
  127.  
  128. get().last().html(''); 
  129. get().last().addClass('hui'); 
  130. get().on('click',pt_click); 
  131.  
  132. //為每個(gè)塊附加屬性,記錄當(dāng)前的值 
  133. $("#pt_main div").each(function(index, element) { 
  134. $(element).attr('tg',index); 
  135. }); 
  136.  
  137.  
  138. dl(); 
  139. st=true
  140. //判斷是否通過(當(dāng)每個(gè)塊的值與自身的下標(biāo)對應(yīng)) 
  141. function pd(){ 
  142. var b=true
  143. get().each(function(index, element) { 
  144. if($(element).attr('tg')!=index){ 
  145. b=false
  146. return false
  147.  
  148. }); 
  149. if(b){ 
  150. st=false
  151. alert("恭喜過關(guān)!"); 
  152. return true
  153. }else
  154. return false
  155. //獲取集合 
  156. function get(){ 
  157. return $("#pt_main div"); 
  158. //打亂 
  159. function dl(){ 
  160. //打亂次數(shù) 
  161. var count=width*width*width; 
  162.  
  163. for(i =0;i<count;i++){ 
  164. //可交換集合 
  165. var li=ut_sc(hui); 
  166. var num=parseInt((li.length)*Math.random()); 
  167. jh(hui,li[num]); 
  168.  
  169. //初始化按鈕的點(diǎn)擊事件 
  170. function csh(){ 
  171. var dxv=$('#dx').val(); 
  172. if(!parseInt(dxv)){ 
  173. alert('請輸入3-10之間的數(shù)字'); 
  174. $('#dx').val(''); 
  175. return false
  176. var v=parseInt(dxv); 
  177. if(v<3||v>10){ 
  178. alert('請輸入3-10之間的數(shù)字'); 
  179. $('#dx').val(''); 
  180. return false
  181. width=v; 
  182. height=v; 
  183. init(); 
  184. </script> 
  185. </head> 
  186.  
  187. <body> 
  188. <div id='menu'
  189. 大小:<input id='dx' style="text-align:center;width:40px;"/> 
  190. <button onclick="csh()">初始化</button> 
  191. <button onclick="init()">刷新</button> 
  192. </div> 
  193. <div id="pt_main"
  194.  
  195. </div> 
  196.  
  197. </body> 
  198. </html> 

以上就是本文給大家分享的全部內(nèi)容了,希望大家能夠喜歡。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 阿拉善盟| 卢氏县| 仪征市| 安化县| 韶关市| 凤台县| 隆昌县| 凤台县| 老河口市| 江孜县| 叶城县| 邛崃市| 西安市| 德江县| 通榆县| 平阳县| 新晃| 修武县| 浦城县| 饶河县| 枞阳县| 西林县| 星子县| 海原县| 上栗县| 云浮市| 乌鲁木齐县| 绿春县| 三江| 北票市| 交口县| 阜阳市| 娄底市| 新建县| 逊克县| 临沧市| 金坛市| 三穗县| 江源县| 广水市| 花莲市|