test

开心PHP的博客
开心PHP的博客原创
2017年11月08日 00:14:08601浏览

2222

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
#content{
width:400px;
height:420px;
position:relative;
/*border:1px solid red;*/
overflow:hidden;
}
#main{
position:relative;
top:-100px;
}
.row{
width:400px;
height:100px;
}
.row div{
width:98px;
height:98px;
border:1px solid gray;
float:right;
}
.black{
background-color:black;
}
</style>
</head>
<body>
<h3 id='fen'>0</h3>
<hr>
<div id="content">
<div id="main"></div>
</div>

<script>
//main写错,没加分号
var main = document.getElementById('main');
//div工厂
function cdiv(classname){
var div = document.createElement('div');
if(classname){
div.setAttribute('class',classname);
}
return div;
}

function crow(){
var row = cdiv('row');//创建行div
//通过随机数决定谁是黑块
var index = Math.floor(Math.random()*4);

//创建小div
for(var i=0;i<4;i++){
if(i==index){
//创建黑块
row.appendChild(cdiv('black'));
}else{
//创建普通小块
row.appendChild(cdiv(''));
}
}

if(main.firstChild){
//如果有第一个元素,说明已经初始化过,将新增的行放最上面
main.insertBefore(row,main.firstChild);
}else{
main.appendChild(row);
}

}
//初始化函数
var flag = true;
var speed = 2;  //加速的变量
var dingshiqi;
function init(){
//循环调用crow创建游戏界面
for(var i=0;i<4;i++){
crow();
}

//设置定时器,反复调用move函数
var dingshiqi = setInterval('move()',50);

//var flag = true;//设置一个旗帜;
main.onclick = function(e){
//事件委托
var dj = e.target;
if(flag==false){
alert('游戏结束1!点到白块');
}

//如果点击白块,停止定时器,游戏失败
//className  必须大写N
else if(dj.className==''){
clearInterval(dingshiqi);
flag = false;
alert('游戏结果2,点到白块!');
}else{  //点击黑块
dj.className = '';
//点击黑块对了加分
dj.parentNode.pass =true;
//如果点击黑块则增加属性pass对应138行
var fen =document.getElementById('fen');
var fenshu = parseInt(fen.innerHTML)+1;
fen.innerHTML = fenshu;

//根据分值实现加速
if(fenshu%10 == 0){
//速度变快
speed +=2;
}
}
}
}

//动起来
function move(){
//通过修改main的top值实现向下移动
var top = parseInt(getComputedStyle(main).top);
top += speed;//加速变量
main.style.top = top+'px';

if(top>=0){
crow();  //最下面div移动下去后,新建一个div
main.style.top='-100px';

if(main.children.length>5){
//大于5行,删除最后一行
main.removeChild(main.lastChild);
}

//判断用户是否点击,没有点击停止游戏对应107行
if(main.lastChild.pass == undefined){
clearInterval(dingshiqi);
flag = false;
alert('游戏结束3,黑块到底!');
}
}
}

init();

</script>
</body>
</html>

555566

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议

相关文章

查看更多