js實(shí)現(xiàn)踩五彩塊游戲
本文實(shí)例為大家分享了js實(shí)現(xiàn)踩五彩塊游戲的具體代碼,供大家參考,具體內(nèi)容如下
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" href="demo.css" > </head> <body> <div class="wrapper"> <div id = "go">Game Start</div> <!-- 運(yùn)動的dom --> <div id="main"></div> </div> <script src = "demo.js"></script> </body> </html>
CSS:
*{
margin: 0;
padding: 0;
}
.wrapper{
position: relative;
width: 400px;
height: 600px;
border: 1px solid black;
margin :160px auto;
overflow: hidden;
}
#go{
position:absolute;
left:0;
top: 0;
width: 100%;
height: 100px;
border-bottom: 1px solid #000;
font-weight: bolder;
font-size: 60px;
line-height: 100px;
text-align: center;
cursor: pointer;
z-index: 999;
}
#main{
position: relative;
width:400px;
height: 600px;
/* border:1px solid red; */
}
.row{
width: 400px;
height: 150px;
}
.row div{
/* 塊級元素水平排列 */
float: left;
width: 100px;
height: 150px;
border: 1px solid #000;
/* 混雜模式盒模型 */
box-sizing: border-box;
/* 最終顯示寬度為設(shè)定寬度 */
}
js:
// bindEvent顯示開始,清除 creatDiv增加一行 move運(yùn)動 判斷勝負(fù) 計(jì)分
var go = document.getElementById('go');
// 運(yùn)動趨于
var main = document.getElementById('main');
var timer;
var speed = 5,num = 0,flag = true;
function bindEvent() {
go.addEventListener('click', function () {
go.style.display = 'none';
move();
});
main.addEventListener('click',function(e){
if(flag){
var tar = e.target;
if(tar.className == 'tar'){
tar.style.backgroundColor = '#bbb';
tar.classList.remove('tar');
num++;
}else{
clearInterval(timer);
alert('游戲結(jié)束吧得分'+num);
flag = false;
}
}
});
}
bindEvent();
function move() {
timer = setInterval(function(){
// 初始位置+速度
var step = parseInt(main.offsetTop)+speed;
// 當(dāng)前位置付給新的top
main.style.top = step+'px';
if(parseInt(main.offsetTop)>=0){
main.style.top = '-150px';
cDiv();
}
// 移除多余的div
var len = main.childNodes.length;
if(len == 6){
var lastRow = main.childNodes[len -1];
// 是否結(jié)束
for(var i = 0;i<4;i++){
if(lastRow.childNodes[i].classList.contains('tar')){
clearInterval(timer);
alert('游戲結(jié)束得分:'+num);
flag = false;
}}
main.removeChild(main.childNodes[len - 1]);
}
}
,20 );
}
// 創(chuàng)建行和列
function cDiv() {
// 生成數(shù)組顏色
var color = ['red','blue','green','pink'];
// 創(chuàng)建一個行
var oDiv = document.createElement('div');
// 生成一個隨機(jī)數(shù)
var index = Math.floor(Math.random()*4);
// 創(chuàng)建四列
for (var i = 0; i < 4; i++) {
// 創(chuàng)建四個列塊
var iDiv = document.createElement('div');
// 行里面插入列
oDiv.appendChild(iDiv);
}
// 被點(diǎn)擊的div
var clickDiv = oDiv.childNodes[index];
clickDiv.setAttribute('class','tar');
// 顏色隨機(jī)
clickDiv.style.backgroundColor = color[index];
oDiv.setAttribute('class', 'row');
// 如果行為空則插入,如果不為空則向上插入;
if (main.childNodes.length == 0) {
main.appendChild(oDiv);
} else {
main.insertBefore(oDiv, main.childNodes[0]);
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript實(shí)現(xiàn)拖動對話框效果的實(shí)現(xiàn)代碼
這篇文章主要介紹了JavaScript實(shí)現(xiàn)拖動對話框效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10
uniapp項(xiàng)目實(shí)踐自定義加載組件示例詳解
這篇文章主要為大家介紹了uniapp項(xiàng)目實(shí)踐自定義加載組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
原生js實(shí)現(xiàn)jquery函數(shù)animate()動畫效果的簡單實(shí)例
下面小編就為大家?guī)硪黄鷍s實(shí)現(xiàn)jquery函數(shù)animate()動畫效果的簡單實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08
通過Tabs方法基于easyUI+bootstrap制作工作站
本教程給大家介紹如何制作easyUI+bootstrap工作站,主要學(xué)習(xí)tabs方法,本文介紹非常詳細(xì),具有參考借鑒價值,需要的朋友參考下吧2016-03-03
JavaScript前端實(shí)現(xiàn)局部打印(精確打印)的幾種方式
前端可以打印差前端展示的任意頁面的任意內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于JavaScript前端實(shí)現(xiàn)局部打印(精確打印)的幾種方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04
原生JS封裝拖動驗(yàn)證滑塊的實(shí)現(xiàn)代碼示例
這篇文章主要介紹了原生JS封裝拖動驗(yàn)證滑塊的實(shí)現(xiàn)代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
javascript中的return和閉包函數(shù)淺析
這篇文章主要介紹了javascript中的return和閉包函數(shù)淺析,至少可以讓你搞懂那么多()是什么意思,需要的朋友可以參考下2014-06-06
JS實(shí)現(xiàn)對中文字符串進(jìn)行utf-8的Base64編碼的方法(使其與Java編碼相同)
這篇文章主要介紹了JS實(shí)現(xiàn)對中文字符串進(jìn)行utf-8的Base64編碼的方法,對比java的base64編碼程序,分析了javascript實(shí)現(xiàn)base64編碼的相關(guān)技巧,需要的朋友可以參考下2016-06-06

