网站首页 手机版
 注册 登录
您现在的位置: 畅无忧设计 >> 网页特效 >> 网页游戏 >> 正文
最新文章
· JS重现儿时经典美女拼图游戏
· 在线俄罗斯方块网页游戏程序
· JavaScript编写的打砖块网页游戏
· JavaScript实现碰壁反弹效果
· JavaScript 过河游戏
· 网页中的赛车游戏
· 蚁群算法js版
· 劲舞团练习工具
热门文章
 JavaScript编写的打砖块网页游戏
 JavaScript实现碰壁反弹效果
 蚁群算法js版
 JS重现儿时经典美女拼图游戏
 劲舞团练习工具
 JavaScript 过河游戏
 网页中的赛车游戏
 在线俄罗斯方块网页游戏程序
相关文章
没有相关文章
JS重现儿时经典美女拼图游戏
来源:源码爱好者 更新时间:2011/10/31 22:22:11 阅读次数: 我要投稿
△运行 ☉预览 #复制 +收藏
特效代码:
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JS重现_经典拼板游戏_QQ:23154623</title>
</head>
<body>
<style>
 *{margin:0;padding:0;}
 .shell{margin:20px auto;position:relative;width:499px;height:299px;border:#666 10px solid;background:#FAFAFA;}
 .shell p{position:absolute;width:99px;height:99px;background:url(http://www.cwydesign.com/effects/UploadFiles_7074/201110/2011103122241852.jpg) no-repeat 0 0;cursor:pointer;}
 .bar{margin:0 auto;width:499px;font:600 16px/1.8em Verdana;}
 .bar em{font-style:normal;margin-right:10px;color:#F00;}
 #showall{font:12px/1.8em Verdana;cursor:pointer;}
 #show{background:url(http://www.cwydesign.com/effects/UploadFiles_7074/201110/2011103122241852.jpg) no-repeat 0 0;}
</style>
<div id="shell" class="shell"></div>
<div id="bar" class="bar">
 <b>计时:</b><em id="times">00:00</em>
 <b>步数:</b><em id="steps">0</em>
 <select id="hard">
  <option value="1">入门模式</option>
  <option value="7">简单模式</option>
  <option value="81">一般模式</option>
  <option value="201">困难模式</option>
  <option value="501">超难模式</option>
 </select>
 <b id="showall">查看原图</b>
</div>
<div id="show" class="shell" style="display:none;"></div>
<script type="text/javascript">
speller={
 init:function(n){
  this.hard=n||5;
  this.step=this.useTime=0;
  this.blank=14;
  this.createGrid();
  clearInterval(this.timer);
  this.timer=setInterval(function(){
   speller.useTime++;/* 累加时间并格式化显示 */
   document.getElementById("times").innerHTML=('0'+parseInt(speller.useTime/60)).slice(-2)+':'+('0'+speller.useTime%60).slice(-2);
  },1000);
 }
 ,createGrid:function(){
  var X=function(n){return n%5*100;},Y=function(n){return parseInt(n/5)*100;};
  for(var i=0,html=[];i<15;i++){
   html.push('<p onclick="speller.move(this);" id="'+i+'" class="'+i+'"  style="left:'+X(i)+'px;top:'+Y(i)+'px;background-position:-'+X(i)+'px -'+Y(i)+'px;"></p>');
  }
  document.getElementById("shell").innerHTML=html.join('');
  this.random();
 }
 ,random:function(p){
  var ps=document.getElementById("shell").getElementsByTagName("P"),l=ps.length,me=this;
  ps[this.blank].style.display="none";
  var en=function(n){
   var arr=[];
   if(n<14 && n%5!=4){arr.push(n+1);}
   if(n>0 && n%5!=0){arr.push(n-1);}
   if(n>4){arr.push(n-5);}
   if(n<10){arr.push(n+5);}
   return arr[parseInt(Math.random()*arr.length)]*1;
  }
  var getp=function(n){for(var i=0;i<l;i++){if(ps[i].className==n){return ps[i];}}}
  for(var i=0;i<me.hard;i++){
   this.move2(getp(en(this.blank*1)));
  }
 }
 ,move2:function(p){
  var pos=p.className*1,POS=this.blank*1,abs=Math.abs(pos-POS),max=pos>POS?pos:POS;
  p.style.top=parseInt(POS/5)*100+"px";
  p.style.left=POS%5*100+"px";
  p.className=POS;this.blank=pos;
 }
 ,move:function(p){
  var pos=p.className*1,POS=this.blank*1,abs=Math.abs(pos-POS),max=pos>POS?pos:POS;
  if(abs==5){
   this.fx(parseInt(pos/5)*100,parseInt(POS/5)*100,function(x){p.style.top=x+"px";},function(){},100,.4)
  }else if(abs==1&&max%5!=0){
   this.fx(pos%5*100,POS%5*100,function(x){p.style.left=x+"px";},function(){},100,.4)
  }else{return;}
  p.className=POS;this.blank=pos;document.getElementById("steps").innerHTML=++this.step;
  if(this.check()){
   var me=this,last=document.getElementById("shell").getElementsByTagName("P")[14];
   last.style.display="block";
   this.blank=10000;
   this.fx(0,100,function(x){last.style.opacity=x/100;last.style.filter="alpha(opacity="+x+")";},function(){alert('你真棒!再来一次吧!');me.init();},200,1)
  }
 }
 ,check:function(){
  var p=document.getElementById("shell").getElementsByTagName("P");
  for(var i=0,l=p.length;i<l;i++){if(p[i].className!=p[i].id){return false;}}
  return true;
 }
 ,fx:function(f,t,fn,end,tm,pow){
  var D=Date,d=new D,e,c=tm||240,pow=pow||2;
  return e=setInterval(function (){
   var z=Math.min(1,(new D-d)/c);
   (false===fn(+f+(t-f)*Math.pow(z,pow),z)||z==1) && end && end(clearTimeout(e));
  },10);
 }
}
speller.init(document.getElementById("hard").value);
document.getElementById("showall").onclick=function(){
 document.getElementById("show").style.display=document.getElementById("show").style.display=="none"?"":"none";
}
document.getElementById("hard").onchange=function(){
 speller.init(this.value);
}
document.all&&document.execCommand("BackgroundImageCache", false, true);
</script>
</body>
</html>
△运行 ☉预览 #复制 +收藏
特效说明:

  [js拼图游戏]JS重现80后儿时经典拼板(模板)游戏,游戏难易度分为入门、简单、一般、困难和超难度五个档级,如果看不到图片,请在代码中,修改2处图片地址。

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 关于我们 - 联系我们 - 广告服务 - 在线投稿 - 友情链接 - 网站地图 - 版权声明
    CopyRight 2008-2010, CWYDESIGN.COM - 畅无忧设计, Inc. All Rights Reserved
    滇ICP备09005765号