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 相关文章推荐
jQuery阻止同类型事件小结
Apr 19 Javascript
使用JS取得焦点(focus)元素代码
Mar 22 Javascript
调整小数的格式保留小数点后两位
May 14 Javascript
js类定义函数时用prototype与不用的区别示例介绍
Jun 10 Javascript
JS实现清除指定cookies的方法
Sep 20 Javascript
浅谈javascript中createElement事件
Dec 05 Javascript
JS+CSS实现美化的下拉列表框效果
Aug 11 Javascript
vue2 前端搜索实现示例
Feb 26 Javascript
vue移动端轻量级的轮播组件实现代码
Jul 12 Javascript
JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析
Mar 02 Javascript
js回到页面指定位置的三种方式
Dec 17 Javascript
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
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作的文本留言本的例子(四)
2006/10/09 PHP
用php解析html的实现代码
2011/08/08 PHP
Chrome Web App开发小结
2014/09/04 PHP
PHP中strtr字符串替换用法详解
2014/11/26 PHP
php 参数过滤、数据过滤详解
2015/10/26 PHP
Zend Framework动作助手FlashMessenger用法详解
2016/03/05 PHP
ThinkPHP 模板引擎使用详解
2017/05/07 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
CLASS_CONFUSION JS混淆 全源码
2007/12/12 Javascript
javascript实现youku的视频代码自适应宽度
2015/05/25 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
微信小程序之购物车功能
2020/09/23 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
vue2.0 常用的 UI 库实例讲解
2017/12/12 Javascript
Vue.directive()的用法和实例详解
2018/03/04 Javascript
解决在vue项目中,发版之后,背景图片报错,路径不对的问题
2018/03/06 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
Python实现的简单hangman游戏实例
2015/06/28 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
2018/05/04 Python
在Python中使用gRPC的方法示例
2018/08/08 Python
解决Pycharm 导入其他文件夹源码的2种方法
2020/02/12 Python
HTML5实现Notification API桌面通知功能
2016/03/02 HTML / CSS
美国南加州的原创极限运动潮牌:Vans(范斯)
2016/08/05 全球购物
竞聘演讲稿范文
2014/01/12 职场文书
四川成都导游欢迎词
2014/01/18 职场文书
教师试用期自我鉴定
2014/02/12 职场文书
医院学雷锋活动策划方案
2014/02/15 职场文书
大课间体育活动方案
2014/03/12 职场文书
市场拓展计划书
2014/05/03 职场文书
公司股份合作协议书
2014/12/07 职场文书
php实现自动生成验证码的实例讲解
2021/11/17 PHP