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

首頁 > 編程 > JavaScript > 正文

jquery實現的美女拼圖游戲實例

2019-11-20 12:33:28
字體:
來源:轉載
供稿:網友

本文實例講述了jquery實現的美女拼圖游戲。分享給大家供大家參考。具體如下:

這里可以自由打亂拼圖次序,3*3,4*4等多種組合來進行格數拼圖

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Jquery-puzzle by 4074</title><style>html{ height:100%;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,button,textarea,p,blockquote,th,td{ padding:0; margin:0;}body{ font-family: "Helvetica Neue", "Hiragino Sans GB", "Segoe UI", "Microsoft Yahei", "微軟雅黑", Tahoma, Arial, STHeiti, sans-serif; font-size:12px; background:#fff; color:#333;}a{ outline:none; -moz-outline:none; text-decoration:none;}.clearfix{ zoom:1; _height:1px;}.clearfix:after{ content:"."; display:block; height:0; clear:both; visibility:hidden;}.head{ height:50px; line-height:50px; padding-left:20px; border-bottom:1px solid #eee; box-shadow: 1px 1px 5px #ccc;}.head h1{ float:left; width:320px; font-weight:normal; font-size:22px;}.head span{ display:block; float:right; font-size:12px; color:#999; line-height:14px; margin:30px 10px 0 0;}.wrap{ width:1000px; margin:80px auto;}.play_wrap{ width:300px; float:left; padding:20px; margin-left:200px;}#play_area{ position:relative; width:300px; height:300px; margin:auto; background:#fefefe; border-radius:2px; color: black; box-shadow: 0px 0px 8px #09F; border:1px solid #fff; *border:1px solid #e5e5e5; cursor:default;}#play_area .play_cell{ width:48px; height:48px; border:1px solid #fff; border-radius:4px; position:absolute; background-position: 5px 5px; cursor: default; z-index:80; box-shadow:0px 0px 8px #fff; transition-property:background-position; transition-duration:300ms; transition-timing-function:ease-in-out;}#play_area .play_cell.hover{ filter: alpha(opacity=80); opacity:.8; box-shadow: 0px 0px 8px #000; z-index:90; *border:1px solid #09F;}.play_menu{ float:left; margin-left:60px; font-size:14px; padding-top:20px;}.play_menu p{ line-height:200%; clear:both;}.play_menu a.play_btn{ display:block; margin-bottom:20px; width:80px; height:28px; line-height:28px; text-align:center; text-decoration:none; color:#333; background:#fefefe; border:1px solid #eee; border-radius: 2px; box-shadow: 1px 1px 2px #eee; border-color: #ddd #d2d2d2 #d2d2d2 #ddd; outline:none; -moz-outline:none;}.play_menu a.play_btn:hover{ background-color: #fcfcfc; border-color: #ccc; box-shadow: inset 0 -2px 6px #eee;}.play_menu a#play_btn_level{ position:relative; margin-bottom:30px;}.level_text{ margin-left:-10px;}.level_icon{ display:block; position:absolute; top:12px; right:16px; width:0; height:0; overflow:hidden; border:5px solid #FFF; border-color:#999 transparent transparent transparent;}.level_menu{ position:absolute; margin:-30px 0 0px 1px; display:none;}.level_menu ul{ list-style:none;}.level_menu li{ float:left;}.level_menu li a{ display:block; padding:3px 10px; border:1px solid #e8e8e8; margin-left:-1px; color:#09c;}.level_menu li a:hover{ background:#09c; color:#fefefe;}#info{ font-size:16px; margin:30px 0 0 0;}#info a{ color:#09F;}</style><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript">var puzzleGame = function(options){ this.img = options.img || ""; this.e_playArea = $("#play_area"); this.e_startBtn = $("#play_btn_start"); this.e_playScore = $("#play_score"); this.e_playCount = $("#play_count"); this.e_levelBtn = $("#play_btn_level"); this.e_levelMenu = $("#play_menu_level"); this.areaWidth = parseInt(this.e_playArea.css("width")); this.areaHeight = parseInt(this.e_playArea.css("height")); this.offX = this.e_playArea.offset().left; this.offY = this.e_playArea.offset().top; this.levelArr = [[3,3],[4,4],[6,6]]; this.level = 1; this.scoreArr = [100,200,400]; this.score = 0; this.playCount = 0; this.cellRow = this.levelArr[this.level][0]; this.cellCol = this.levelArr[this.level][1]; this.cellWidth = this.areaWidth/this.cellCol; this.cellHeight = this.areaHeight/this.cellRow; this.imgArr = []; this.ranArr = []; this.cellArr = []; this.easing = 'swing'; this.time = 400; this.thisLeft = 0; this.thisTop = 0; this.nextIndex; this.thisIndex; this.cb_cellDown = $.Callbacks(); this.isInit = false; this.isBind = false; this.start();};puzzleGame.prototype = { start:function(){ this.init(); this.menu(); }, set: function(options){ this.level = options.level === 0 ? 0 : (options.level || 1); }, menu:function(){ var self = this; this.e_startBtn.click(function(){ self.e_levelMenu.hide(); self.play(); }); this.e_levelBtn.click(function(){ if(self.playing) return; self.e_levelMenu.toggle(); }); this.e_levelMenu.find("a").click(function(){ self.e_levelMenu.hide(); self.e_levelBtn.find(".level_text").html($(this).html()) if(parseInt($(this).attr("level")) !== self.level){ self.set({  "level": $(this).attr("level") }); self.isInit = true; self.isBind = false; } }) }, play:function(){ if(this.isInit){ this.isInit = false; this.cellRow = this.levelArr[this.level][0]; this.cellCol = this.levelArr[this.level][1]; this.cellWidth = this.areaWidth/this.cellCol; this.cellHeight = this.areaHeight/this.cellRow; this.init(); } this.e_playCount.html(this.playCount = 0); this.randomImg(); if(!this.isBind)this.bindCell(); }, init:function(){ var _cell; this.cellArr = []; this.imgArr = []; this.e_playArea.html(""); for(var i = 0; i<this.cellRow; i++){ for(var j = 0; j<this.cellCol; j++){ this.imgArr.push(i*this.cellCol + j); _cell = document.createElement("div"); _cell.className = "play_cell"; $(_cell).css({  "width": this.cellWidth-2,  "height": this.cellHeight-2,  "left": j * this.cellWidth,  "top": i * this.cellHeight,  "background": "url(" + this.img + ")",  "backgroundPosition": (-j) * this.cellWidth + "px " + (-i) * this.cellHeight + "px" }); this.cellArr.push($(_cell)); this.e_playArea.append(_cell); } } }, randomImg:function(){ var ran,arr; arr = this.imgArr.slice(); this.ranArr = []; for(var i = 0, ilen = arr.length; i < ilen; i++){ ran = Math.floor(Math.random() * arr.length); this.ranArr.push(arr[ran]); this.cellArr[i].css({ "backgroundPosition": (-arr[ran]%this.cellCol) * this.cellWidth + "px " + (-Math.floor(arr[ran]/this.cellCol)) * this.cellHeight + "px" }) arr.splice(ran,1); } $("#p").html(this.ranArr.join()) }, bindCell:function(){ var self = this; this.isBind = true; this.cb_cellDown.add(self.cellDown); for(var i = 0, len = this.cellArr.length; i<len; i++){ this.cellArr[i].on({ "mouseover": function(){  $(this).addClass("hover"); }, "mouseout": function(){  $(this).removeClass("hover"); }, "mousedown": function(e){  self.cb_cellDown.fire(e, $(this), self);  return false; } }); } }, cellDown:function(e,_cell,self){ var //self = this, _x = e.pageX - _cell.offset().left, _y = e.pageY - _cell.offset().top; self.thisLeft = _cell.css("left"); self.thisTop = _cell.css("top"); self.thisIndex = Math.floor(parseInt(self.thisTop)/self.cellHeight)*self.cellCol; self.thisIndex += Math.floor(parseInt(self.thisLeft)/self.cellWidth); _cell.css("zIndex",99); $(document).on({ "mousemove": function(e){  _cell.css({  "left": e.pageX - self.offX - _x,  "top": e.pageY - self.offY - _y  }) }, "mouseup": function(e){  $(document).off("mouseup");  $(document).off("mousemove");  self.cb_cellDown.empty();  if( e.pageX - self.offX < 0 || e.pageX - self.offX > self.areaWidth || e.pageY - self.offY < 0 || e.pageY - self.offY > self.areaHeight ){  self.returnCell();  return;  }  var _tx, _ty, _ti, _tj;  _tx = e.pageX - self.offX;  _ty = e.pageY - self.offY;  _ti = Math.floor( _ty / self.cellHeight );  _tj = Math.floor( _tx / self.cellWidth );  self.nextIndex = _ti*self.cellCol + _tj;  if(self.nextIndex == self.thisIndex){  self.returnCell();  }else{  self.changeCell();  } } }) }, changeCell:function(){ var self = this, _tc = this.cellArr[this.thisIndex], _tl = this.thisLeft, _tt = this.thisTop, _nc = this.cellArr[this.nextIndex], _nl = (this.nextIndex % this.cellCol) * this.cellWidth, _nt = Math.floor(this.nextIndex / this.cellCol) * this.cellHeight; _nc.css("zIndex",98); this.cellArr[this.nextIndex] = _tc; this.cellArr[this.thisIndex] = _nc; this.ranArr[this.nextIndex] = this.ranArr[this.nextIndex] + this.ranArr[this.thisIndex]; this.ranArr[this.thisIndex] = this.ranArr[this.nextIndex] - this.ranArr[this.thisIndex]; this.ranArr[this.nextIndex] = this.ranArr[this.nextIndex] - this.ranArr[this.thisIndex]; _tc.animate({ "left": _nl, "top": _nt },self.time,self.easing,function(){ _tc.removeClass("hover"); _tc.css("zIndex",""); }) _nc.animate({ "left": _tl, "top": _tt },self.time,self.easing,function(){ _nc.removeClass("hover"); _nc.css("zIndex",""); self.check(); if(!self.cb_cellDown.has(self.cellDown)) self.cb_cellDown.add(self.cellDown); }) }, returnCell:function(){ var self = this; this.cellArr[this.thisIndex].animate({ "left": self.thisLeft, "top": self.thisTop },self.time,self.easing,function(){ $(this).removeClass("hover"); $(this).css("zIndex",""); if(!self.cb_cellDown.has(self.cellDown)) self.cb_cellDown.add(self.cellDown); }); }, check:function(){ this.e_playCount.html( ++ this.playCount); if(this.ranArr.join() == this.imgArr.join()){ this.success(); } }, success:function(){ alert("ok"); this.score += this.scoreArr[this.level] this.e_playScore.html(this.score); }}$(document).ready(function(e) { var pg = new puzzleGame({ img: "images/120908-1347075337_M.jpg" });});</script></head><body><div class="wrap"> <div class="play_wrap"> <div id="play_area"></div> </div> <div class="play_menu">   <a id="play_btn_start" class="play_btn" href="javascript:void(0);" unselectable="on">開始</a>   <a id="play_btn_level" class="play_btn" href="javascript:void(0);" unselectable="on">    <span class="level_text">4 x 4</span>    <span class="level_icon"></span>   </a>    <div class="level_menu" id="play_menu_level">     <ul>      <li>       <a href="javascript:void(0);" level=0 >3 x 3</a>      </li>      <li>       <a href="javascript:void(0);" level=1 >4 x 4</a>      </li>      <li>       <a href="javascript:void(0);" level=2 >6 x 6</a>      </li>     </ul>    </div>   <p>完成:<span id="play_score">0</span></p>   <p>交換:<span id="play_count">0</span></p>   <p>說明:<br>   -點擊開始,小圖片將隨機打亂;<br>   -拖動小圖片可交換位置,順序完全正確則為成功;<br>   -難度分“3x3”、“4x4”、“6x6”三級;<br>   -對應的分值為100、200、400;   </p>  </div></div></body></html>

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品系列| 亚洲色图综合网| 精品视频在线播放免| 久色乳综合思思在线视频| 亚洲欧美日韩一区二区三区在线| 麻豆国产va免费精品高清在线| 国产成人一区二区三区电影| 中文字幕欧美在线| 日韩国产高清污视频在线观看| 久久久久久久久久av| 另类专区欧美制服同性| 日韩精品在线观看一区二区| 久久精品99久久久久久久久| 欧美成人精品在线观看| 亚洲成人久久电影| 精品国产乱码久久久久久天美| 国产精品高清网站| 久久中文字幕在线视频| 91国产精品视频在线| 最近2019年中文视频免费在线观看| 97精品国产97久久久久久免费| 国外色69视频在线观看| 欧美亚洲国产视频| 中文字幕日韩精品在线| 国产精品久久久久久久app| 国产亚洲激情视频在线| 欧美日韩国产中文字幕| 欧美成人精品在线观看| 精品欧美国产一区二区三区| 欧美—级a级欧美特级ar全黄| 日韩av在线一区二区| 精品亚洲va在线va天堂资源站| 欧美成人免费全部| 另类图片亚洲另类| 久久久亚洲影院你懂的| 亚洲国产精品小视频| 久久中国妇女中文字幕| 亚洲精品美女久久久久| 隔壁老王国产在线精品| 日韩国产在线看| 久久免费精品日本久久中文字幕| 久久亚洲精品毛片| 国产日韩欧美在线播放| 国产精品丝袜视频| 精品久久久久久久久国产字幕| 欧美激情精品久久久久久黑人| 亚洲视频电影图片偷拍一区| 日韩性生活视频| 欧美一区二区影院| 国产精品久久久久久av福利软件| 国产999精品久久久| 亚洲欧美中文日韩在线| 精品国产网站地址| 亚洲精品国偷自产在线99热| 亚洲欧美在线播放| 亚洲免费电影一区| 日韩女优在线播放| 中文字幕亚洲激情| 精品久久久999| 国产日本欧美一区二区三区在线| 美女啪啪无遮挡免费久久网站| 综合欧美国产视频二区| 国产成人精品一区二区三区| 欧美成在线观看| 国产精品国产三级国产aⅴ9色| 性色av一区二区三区在线观看| 亚洲www视频| 中文字幕日韩精品在线| 日韩av在线网站| 欧美在线观看视频| 欧美乱大交做爰xxxⅹ性3| 91老司机在线| 欧美性猛交xxxx黑人| 视频在线观看99| 国产欧美精品一区二区三区-老狼| 毛片精品免费在线观看| 国产不卡av在线| 亚洲视频在线观看网站| 亚洲欧美日韩久久久久久| 国内精品久久久久久久| 国产欧美一区二区三区久久| 成人综合网网址| 欧美黑人国产人伦爽爽爽| 亚洲人成伊人成综合网久久久| 色999日韩欧美国产| 日韩av在线精品| 992tv在线成人免费观看| 麻豆乱码国产一区二区三区| 亚洲精品第一国产综合精品| 亚洲欧美日韩第一区| 亚洲第一精品夜夜躁人人躁| 日韩精品在线免费观看视频| 亚洲免费伊人电影在线观看av| 亚洲午夜国产成人av电影男同| 亚洲欧洲中文天堂| 日本精品视频在线播放| 深夜精品寂寞黄网站在线观看| 国产精品一区二区三区毛片淫片| 91深夜福利视频| 国产精品久久久久久久美男| 日韩中文字幕av| 91精品国产综合久久香蕉的用户体验| 国产日韩欧美日韩| 久久久免费观看| 亚洲黄一区二区| 国产精品丝袜久久久久久不卡| 国产成人免费91av在线| 色一区av在线| 68精品久久久久久欧美| 日韩av综合网站| 日韩电影免费观看在线| 欧美成人精品影院| 一区二区三区视频在线| 精品无码久久久久久国产| 国产精品第一区| 欧美亚州一区二区三区| 欧美精品日韩三级| 欧美在线一区二区视频| 亚洲在线观看视频| 欧美日韩在线一区| 欧美不卡视频一区发布| 国产精品一区二区电影| 日韩国产欧美精品在线| 欧美日韩不卡合集视频| 日韩高清a**址| 国产美女久久精品香蕉69| 亚洲色图第三页| 亚洲人成电影网| 中文字幕日韩免费视频| 96pao国产成视频永久免费| 欧美在线视频网| 九色精品免费永久在线| 国产成人97精品免费看片| 日本精品久久久久久久| 亚洲嫩模很污视频| 成人免费视频在线观看超级碰| 国产伦精品免费视频| 91丝袜美腿美女视频网站| 日韩av在线一区| 日韩在线欧美在线| 亚洲天堂av网| 国产一区二区三区中文| 91精品国产免费久久久久久| 国产成人高清激情视频在线观看| 国产精品精品久久久| 欧美另类极品videosbest最新版本| 国产精品成人免费电影| 欧美最猛性xxxxx亚洲精品| 亚洲aⅴ日韩av电影在线观看| 国产精品黄色影片导航在线观看| 亚洲永久免费观看| 久久久久久久久久av| 亚洲综合色激情五月| 欧美日韩一区二区免费视频| 中文字幕精品影院| 国产精品美女呻吟| 亚洲一区二区少妇| 成人疯狂猛交xxx| 在线观看视频亚洲| 91精品视频免费看| 日韩激情av在线免费观看| 奇门遁甲1982国语版免费观看高清| 96精品久久久久中文字幕| 久久久久久久一区二区三区|