js实现踩五彩块游戏


Posted in Javascript onFebruary 08, 2020

本文实例为大家分享了js实现踩五彩块游戏的具体代码,供大家参考,具体内容如下

<!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>
  <!-- 运动的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;
 /* 最终显示宽度为设定宽度 */
}

js:

// bindEvent显示开始,清除 creatDiv增加一行 move运动 判断胜负 计分
var go = document.getElementById('go');
// 运动趋于
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('游戏结束吧得分'+num);
   flag = false;
  }
  }

 });

}
bindEvent();
function move() {
 timer = setInterval(function(){
  // 初始位置+速度
  var step = parseInt(main.offsetTop)+speed;
  // 当前位置付给新的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];
   // 是否结束
   for(var i = 0;i<4;i++){
   if(lastRow.childNodes[i].classList.contains('tar')){
    clearInterval(timer);
    alert('游戏结束得分:'+num);
    flag = false;

   }}

   main.removeChild(main.childNodes[len - 1]);

  }

 }
 ,20 );
}
// 创建行和列
function cDiv() {
 // 生成数组颜色
 var color = ['red','blue','green','pink'];
 // 创建一个行
 var oDiv = document.createElement('div');
 // 生成一个随机数
 var index = Math.floor(Math.random()*4);
 // 创建四列
 for (var i = 0; i < 4; i++) {
  // 创建四个列块
  var iDiv = document.createElement('div');
  // 行里面插入列
  oDiv.appendChild(iDiv);

 }
 // 被点击的div 
 var clickDiv = oDiv.childNodes[index];
 clickDiv.setAttribute('class','tar');
 // 颜色随机
 clickDiv.style.backgroundColor = color[index];
 oDiv.setAttribute('class', 'row');
 // 如果行为空则插入,如果不为空则向上插入;
 if (main.childNodes.length == 0) {
  main.appendChild(oDiv);
 } else {
  main.insertBefore(oDiv, main.childNodes[0]);
 }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
让你的网站可编辑的实现js代码
Oct 19 Javascript
js不完美解决click和dblclick事件冲突问题
Jul 16 Javascript
Javascript实现滑块滑动改变值的实现代码
Apr 12 Javascript
基于JS代码实现图片在页面中旋转效果
Jun 16 Javascript
JavaScript动态添加事件之事件委托
Jul 12 Javascript
浅谈键盘上回车按钮的js触发事件
Feb 13 Javascript
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
Feb 08 Javascript
浅谈mvvm-simple双向绑定简单实现
Apr 18 Javascript
Vue组件中的data必须是一个function的原因浅析
Sep 03 Javascript
JavaScript代码调试方法实例小结
Jan 05 Javascript
google广告之另类js调用实现代码
Aug 22 Javascript
JavaScript组合继承详解
Nov 07 Javascript
JavaScript canvas实现雪花随机动态飘落
Feb 08 #Javascript
JS实现简易留言板增删功能
Feb 08 #Javascript
原生JS实现留言板功能
Feb 08 #Javascript
javascript实现留言板功能
Feb 08 #Javascript
JavaScript实现PC端横向轮播图
Feb 07 #Javascript
vue更改数组中的值实例代码详解
Feb 07 #Javascript
Vue 一键清空表单的实现方法
Feb 07 #Javascript
You might like
php读取数据库信息的几种方法
2008/05/24 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
flash 得到自身url参数的代码
2009/11/15 Javascript
Javascript的各种节点操作实例演示代码
2012/06/27 Javascript
Nodejs关于gzip/deflate压缩详解
2015/03/04 NodeJs
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
2016/04/29 Javascript
详解微信小程序开发之下拉刷新 上拉加载
2016/11/24 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
微信小程序实现团购或秒杀批量倒计时
2020/11/01 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
2019/10/14 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
JavaScript数组及常见操作方法小结
2019/11/13 Javascript
解决vue的touchStart事件及click事件冲突问题
2020/07/21 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
[47:35]VP vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
pyqt4教程之实现windows窗口小示例分享
2014/03/07 Python
kNN算法python实现和简单数字识别的方法
2014/11/18 Python
简单谈谈python中的语句和语法
2017/08/10 Python
使用python实现多维数据降维操作
2020/02/24 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
struct和class的区别
2015/11/20 面试题
Python的两道面试题
2013/06/29 面试题
质量工程师岗位职责
2013/11/16 职场文书
丧事答谢词
2015/01/05 职场文书
医院病假条怎么写
2015/08/17 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书
《堡垒之夜》联动《刺客信条》 4月7日正式上线
2022/04/06 其他游戏