本文實例為大家分享了js仿3366小游戲中“你是色盲嗎”游戲,大家先來挑戰一下
游戲目標: 按畫面中出現的文字的顏色來選擇顏色,千萬不要被顏色的困局打擾,眼睛一定要放亮哦,游戲開始時會有10分,每答對一題得一分,總共有10分,時間用完游戲會結束。
操作說明: 鼠標點擊選擇顏色
1、效果圖:
原圖:
模仿:
代碼:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> .wrap { width: 400px; height: 600px; border: 1px solid black; margin: 0 auto; } .head { width: 100%; height: 50px; overflow: hidden; } .time { float: left; width: 150px; height: 100%; line-height: 50px; font-size: 20px; text-align: center; } .score { width: 150px; height: 100%; float: right; line-height: 50px; font-size: 20px; /*text-align: center;*/ } .middle { width: 100%; height: 450px; } .text { width: 100%; height: 300px; font-size: 200px; text-align: center; line-height: 300px; } .alert { width: 80%; height: 150px; margin: 0 auto; text-indent: 2em; font-size: 25px; } .bottom { width: 100%; height: 100px; overflow: hidden; } .bottomText { width: 20%; height: 100px; float: left; text-align: center; line-height: 100px; font-size: 70px; cursor: pointer; } </style> </head> <body> <div class="wrap"> <div class="head"> <div class="time">時間:10s</div> <div class="score">分數 :0</div> </div> <div class="middle"> <div class="text">藍</div> <div class="alert">根據上面的字的顏色從下面選擇正確的字,選擇正確自動開始</div> </div> <div class="bottom"> <div class="bottomText">紅</div> <div class="bottomText">綠</div> <div class="bottomText">黑</div> <div class="bottomText">藍</div> <div class="bottomText">黃</div> </div> </div> </body> <script type="text/javascript"> //變化的核心 獲得不重復的亂序數組(數組中下標值) function random(min, max) { return parseInt(Math.random() * (max - min + 1)) + min; } //不重復的數組 function randomArr() { var arr = []; while (arr.length < 5) { var temp = random(0, 4); if (arr.indexOf(temp) == -1) { arr.push(temp); } } return arr; } function fresh() { //中間字 變化 var textIndex = random(0, 4); colorIndex = random(0, 4); textDiv.innerHTML = textArr[textIndex]; textDiv.style.color = colorArr[colorIndex]; //獲取亂序下標數組 var textRandoms = randomArr(); var colorRandoms = randomArr(); for (var i = 0; i < bottomDivs.length; i++) { //通過亂序下標獲取文本,賦值給div bottomDivs[i].innerHTML = textArr[textRandoms[i]]; bottomDivs[i].style.color = colorArr[colorRandoms[i]]; //保存亂序下標 bottomDivs[i].index = textRandoms[i]; } } var textDiv = document.querySelector(".text"); var bottomDivs = document.querySelectorAll(".bottomText"); var timeDiv = document.querySelector(".time"); var scoreDiv = document.querySelector(".score"); var alertDiv = document.querySelector(".alert"); var textArr = ["紅", "綠", "藍", "黃", "黑"]; var colorArr = ["red", "green", "blue", "yellow", "black"]; var colorIndex=0; var timer = null; var isplaying = false; var countDown = 10; var score = 0; fresh(); for (var i = 0; i < bottomDivs.length; i++) { bottomDivs[i].onclick = function(){ //判斷 if(colorIndex == this.index &&countDown!=0 ){ //刷新 score ++; isplaying =true; //分數增加 fresh(); scoreDiv.innerHTML = "分數: "+score ; alertDiv.style.opacity = 0; }else if(colorIndex != this.index &&isplaying){ //點錯時間減小 countDown --; //更新時間變化 timeDiv.innerHTML = "時間: " + countDown +"s"; //判斷清理定時器 if(countDown <= 0){ clearInterval(timer); isplaying = false; } } } } //定時器,監聽游戲進行 timer = setInterval(function(){ if(isplaying){ countDown --; timeDiv.innerHTML = "時間: " + countDown +"s"; if(countDown <= 0){ clearInterval(timer); isplaying =false; alert("game over!!"); } //停止游戲 }else{ } },1000); </script> </html>
以上就是本文的全部內容,希望大家能夠挑戰成功。