最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript制作顏色反轉小游戲

 更新時間:2016年09月25日 16:00:01   作者:tianzitianxie  
本文給大家分享的是一個JavaScript實現(xiàn)的顏色反轉的小游戲的源碼,非常的簡單好玩,有需要的小伙伴可以參考下

游戲規(guī)則:

單擊方塊,被單擊的方塊及相鄰方塊變色,當所有藍色方塊變?yōu)槌壬珪r,完成任務,進入下一級。

<!DOCTYPE html>
<html lang="en">
 <head>
 <meta charset="utf-8">

 <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
 Remove this if you use the .htaccess -->
 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

 <title>顏色翻轉</title>
 <meta name="description" content="">
 <meta name="author" content="jiamengkai">

 <meta name="viewport" content="width=device-width; initial-scale=1.0">

 <!-- Replace favicon.ico & apple-touch-icon.png in the root of your domain and delete these references -->
 <link rel="shortcut icon" href="/favicon.ico">
 <link rel="apple-touch-icon" href="/apple-touch-icon.png">
 
 <style type="text/css">
  * {
  margin: 0;
  padding: 0;
  font-family: "Microsoft yahei";
  color: #000;
  }
  h1 {
  margin: 10px 0;
  font-size: 300%;
  font-weight: bolder;
  }
  span {
  display: block;
  text-indent: 32px;
  }
  .title {
  position: fixed;
  top: 50%;
  left: 50%;
  width: 300px;
  height: 600px;
  margin: -300px 0 0 -500px;
  }
  .main {
  position: fixed;
  top: 50%;
  left: 50%;
  width: 600px;
  height: 600px;
  margin: -300px 0 0 -150px;
  background: #555;
  border-radius: 8px;
  1border: 5px solid #555;
  }
  .blue, .orange {
  margin: 5px;
  }
  .blue {
  background: #099;
  border-radius: 8px;
  float: left;
  }
  .orange {
  background: #D69C49;
  border-radius: 8px;
  float: left;
  }
  .button { 
    1display: inline-block; 
    zoom: 1; /* zoom and *display = ie7 hack for display:inline-block */ 
    display: block; 
    vertical-align: baseline; 
    margin: 8px 5px; 
    outline: none; 
    cursor: pointer; 
    text-align: center; 
    text-decoration: none; 
    font: 14px/100% Arial, Helvetica, sans-serif; 
    padding: .5em 2em .55em; 
    text-shadow: 0 1px 1px rgba(0,0,0,.3); 
    -webkit-border-radius: .5em;  
    -moz-border-radius: .5em; 
    border-radius: .5em; 
    -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.2); 
    -moz-box-shadow: 0 1px 2px rgba(0,0,0,.2); 
    box-shadow: 0 1px 2px rgba(0,0,0,.2); 
  } 
  .button:hover { 
    text-decoration: none; 
  } 
  .button:active { 
    position: relative; 
    top: 1px; 
  }
  .btn { 
    color: #fef4e9; 
    border: solid 1px #da7c0c; 
    background: #f78d1d; 
    background: -webkit-gradient(linear, left top, left bottom, from(#faa51a), to(#f47a20)); 
    background: -moz-linear-gradient(top, #faa51a, #f47a20); 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#faa51a', endColorstr='#f47a20'); 
  } 
  .btn:hover { 
    background: #f47c20; 
    background: -webkit-gradient(linear, left top, left bottom, from(#f88e11), to(#f06015)); 
    background: -moz-linear-gradient(top, #f88e11, #f06015); 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f88e11', endColorstr='#f06015'); 
  } 
  .btn:active { 
    color: #fcd3a5; 
    background: -webkit-gradient(linear, left top, left bottom, from(#f47a20), to(#faa51a)); 
    background: -moz-linear-gradient(top, #f47a20, #faa51a); 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f47a20', endColorstr='#faa51a'); 
  } 
  .operBtn {
  margin-top: 10px;
  width: 200px;
  text-align: center;
  }
  .tipSpan {
  display: inline-block;
  margin: 5px 2px;
  width: 200px;
  text-align: right;
  font-size: 18px;
  }
  .tipNum {
  display: inline-block;
  margin-right: 10px;
  text-align: right;
  width: 60px;
  font-size: 18px;
  }
 </style>
 </head>

 <body>
 <div class="title">
  <h1>顏色翻轉</h1>
  <h2>游戲規(guī)則:</h2>
  <span>
  單擊方塊,被單擊的方塊及相鄰方塊變色,當所有藍色方塊變?yōu)槌壬珪r,完成任務,進入下一級。
  </span>
  <div class="operBtn">
  <input type="button" class="button btn" id="reset" value="重新開始"/>
  <input type="button" class="button btn" id="resetLevel" value="重置本級"/>
  </div>
  <div class="tipInfo">
  <span class="tipSpan">級別:</span><div class="tipNum" id="level">0</div>
  <span class="tipSpan">本級點擊次數:</span><div class="tipNum" id="clickNum">0</div>
  <span class="tipSpan">總點擊次數:</span><div class="tipNum" id="clickSumNum">0</div>
  </div>
 </div>
 <div class="main" id="main">
 </div>
 </body>
 <script type="text/javascript" src="common.js"></script>
 
 <script type="text/javascript">
 var level = 1;
 var margin = 10;
 var clickNum = 0;
 var clickSumNum = 0;
 window.onload = function() {
  
  var mainNode = document.getElementById("main");
  
  var mainWidth = mainNode.offsetWidth;
  var mainHeight = mainNode.offsetHeight;
  
  //重新開始
  var reset = document.getElementById("reset");
  reset.onclick = function() {
  level = 1;
  createNewDiv();
  };
  
  //重置本級
  var resetLevel = document.getElementById("resetLevel");
  resetLevel.onclick = function() {
  createNewDiv();
  };
  
  //換顏色
  function changeColor(obj) {
  if(obj.getAttribute("class")) {
   if(obj.getAttribute("class") == "blue") {
   obj.setAttribute("class", "orange");
   }else {
   obj.setAttribute("class", "blue");
   }
  }
  }
  
  //換顏色
  function nodesChangeColor(obj) {
  clickNum += 1;
  clickSumNum += 1;
  var clickNumNode = document.getElementById("clickNum");
  clickNumNode.innerHTML = clickNum;
  var clickSumNumNode = document.getElementById("clickSumNum");
  clickSumNumNode.innerHTML = clickSumNum;
  
  changeColor(obj);
  
  var obj_r = parseInt(obj.getAttribute("r"));
  var obj_c = parseInt(obj.getAttribute("c"));
  
  
  if(obj_r-1>0) {
   var topObj = document.getElementById("r"+(obj_r-1)+"_c"+obj_c);
   changeColor(topObj);
  }
  if(obj_c+1<=level) {
   var rightObj = document.getElementById("r"+obj_r+"_c"+(obj_c+1));
   changeColor(rightObj);
  }
  if(obj_r+1<=level) {
   var bottomObj = document.getElementById("r"+(obj_r+1)+"_c"+obj_c);
   changeColor(bottomObj);
  }
  if(obj_c-1>0) {
   var leftObj = document.getElementById("r"+obj_r+"_c"+(obj_c-1));
   changeColor(leftObj);
  }
  setTimeout(function() {
   //計算orange塊 的數量
   orangeDivNum();
  },500);
  }
  
  //計算orange塊 的數量
  function orangeDivNum() {
  var o_nodes = document.getElementsByClassName("orange");
  if(o_nodes.length == level*level) {//完成全部翻轉
   //進入下一級
   level += 1;
   createNewDiv();
   myAlert();
  }else {}
  }
  
  //進入下一級
  function createNewDiv() {
  var divWidth = mainWidth/level-margin;
  var divHeight = mainHeight/level-margin;
  mainNode.innerHTML = "";
  for(var i=1;i<=level;i++) {
   for(var j=1;j<=level;j++) {
   var colorNodes = document.createElement("div");
   colorNodes.style.cssText = "width: "+divWidth+"px;height: "+divHeight+"px;";
   colorNodes.setAttribute("class", "blue");
   colorNodes.setAttribute("id", "r"+i+"_c"+j);
   colorNodes.setAttribute("r", i);
   colorNodes.setAttribute("c", j);
   colorNodes.onclick = function() {
    nodesChangeColor(this);
   };
   mainNode.appendChild(colorNodes);
   mainNode.style.cssText = "border: 5px solid #555;";
   }
  }
  
  var levelSpan = document.getElementById("level");
  levelSpan.innerHTML = level;
  clickNum = 0;
  var clickNumNode = document.getElementById("clickNum");
  clickNumNode.innerHTML = clickNum;
  }
 };
 </script>
</html>

相關文章

  • JavaScript在web自動化測試中的作用示例詳解

    JavaScript在web自動化測試中的作用示例詳解

    這篇文章主要給大家介紹了關于JavaScript在web自動化測試中的作用的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用JavaScript具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • javascript 中模板方法單例的實現(xiàn)方法

    javascript 中模板方法單例的實現(xiàn)方法

    這篇文章主要介紹了javascript 中模板方法單例的實現(xiàn)方法的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • 9個javascript語法高亮插件 推薦

    9個javascript語法高亮插件 推薦

    語法高亮效果使用非常頻繁,特別是在博客里展示各種代碼的時候,可以讓代碼更易讀。我們身邊就有很多語法高亮的插件,其中大部分是用javascript寫的,也有一些是通過server端語言實現(xiàn)(比如Phyton或Ruby)。
    2009-07-07
  • javascript 事件綁定問題

    javascript 事件綁定問題

    在子頁面(<iframe></iframe>)創(chuàng)建父級事件!當子頁面(<iframe></iframe>)被銷毀!子頁面(<iframe></iframe>)創(chuàng)建父級事件也會被銷毀!
    2011-01-01
  • js創(chuàng)建對象的方式總結

    js創(chuàng)建對象的方式總結

    這篇文章主要介紹了js創(chuàng)建對象的方式,實例總結了3種常用的創(chuàng)建對象的方式,非常實用,需要的朋友可以參考下
    2015-01-01
  • 理解javascript中的嚴格模式

    理解javascript中的嚴格模式

    這篇文章主要幫助大家理解javascript中的嚴格模式,何為嚴格模式,如何啟用嚴格模式,感興趣的小伙伴們可以參考一下
    2016-02-02
  • 如何在TypeScript中使用函數

    如何在TypeScript中使用函數

    這篇文章主要為大家介紹了如何在TypeScript中使用函數實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 原生JS實現(xiàn)音樂播放器

    原生JS實現(xiàn)音樂播放器

    這篇文章主要為大家詳細介紹了原生JS音樂播放器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • JavaScript中常見的獲取當前日期方法

    JavaScript中常見的獲取當前日期方法

    在我們開發(fā)的許多應用程序都會用到某種日期功能,無論是內容的創(chuàng)建日期還是活動的時間戳等等,這篇文章主要給大家介紹了關于JavaScript中常見的獲取當前日期方法,需要的朋友可以參考下
    2024-06-06
  • 面試官常問之說說js中var、let、const的區(qū)別

    面試官常問之說說js中var、let、const的區(qū)別

    var、let和const都是JavaScript中用來聲明變量的關鍵字,并且let和 const關鍵字是在 ES6 中才新增的,下面這篇文章主要給大家介紹了關于var、let、const區(qū)別的相關資料,需要的朋友可以參考下
    2022-03-03

最新評論

潜江市| 开封县| 张家界市| 清丰县| 肥城市| 集安市| 志丹县| 寻甸| 荆州市| 南投市| 延寿县| 徐汇区| 石泉县| 元江| 平山县| 留坝县| 渝中区| 股票| 互助| 新化县| 五常市| 桂林市| 瓮安县| 隆化县| 桑植县| 平阴县| 通城县| 朝阳区| 闻喜县| 新竹县| 衢州市| 依安县| 屏东市| 漯河市| 贵南县| 临夏市| 武邑县| 屏山县| 阳西县| 白银市| 永吉县|