原生js实现简单的小游戏,巩固原生js基础知识
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>别踩白块</title><style>*{padding: 0;margin: 0;text-decoration: none;}.wrapper {width: 400px;height: 520px;border: 1px solid #222;margin: 50px auto;position: relative;overflow: hidden;}.box {width: 100%;height: 520px;/* border: 1px solid red; */position: relative;top: -150px;}#play{position: absolute;width: 200px;height: 100px;right: 150px;top: 350px;border: 1px dashed #ccc;text-align: center;border-radius: 8px;background-color: #ff9950;}#play a{line-height: 100px;font-size: 30px;}.rdiv{width: 400px;height: 130px;/* border:1px solid #000; */}.odiv{width:99px;height:129px;border-left:1px solid #222;border-bottom:1px solid #222;float: left;cursor: pointer;}</style>
</head>
<body><div class="wrapper" id="_wrapper"><div class="box" id="_box"></div></div>  <div id="play"><a href="#">Game Start</a></div>
</body>
</html>
<script>// 点击game start ,box开始运动 并创建方块var _box = document.getElementById('_box');var _wrapper = document.getElementById('_wrapper');var timer = null;var score = 0;var speed = 5;var flag = true;click();// 点击初始化函数function click(){var _play = document.getElementById('play');_play.addEventListener('click',function(){_play.style.display = 'none';boxPlay();})}// _box移动function boxPlay(){timer = setInterval(function(){_box.style.top = _box.offsetTop + speed + 'px';if(_box.offsetTop >= 0){// 如果_box的到达可视区域就创建一行 并且top值立即到-150pxcreate();_box.style.top = -130 + 'px';}// 如果_box的children.length > 6 ,移除最后一个盒子。既_box做多有6个孩子 if(_box.children.length == 6){for(var i = 0;i < 4;i++){// 如果最后一行 里面有没有被点击 游戏结束if(_box.lastChild.children[i].className == "odiv i"){clearInterval(timer);flag = false;alert('游戏结束'+'得分是:'+ score);                       }       }               _box.removeChild(_box.children[_box.children.length -1]);} },30) // 绑定点击事件bindEvent();}function bindEvent(){// 在大wrapper中点击_wrapper.addEventListener('click',function(event){var target = event.target;// 点击的目标if(target.className == 'odiv i' && flag == true){target.style.backgroundColor = "#ccc";target.className = 'odiv';score ++;}else{clearInterval(timer);flag = false;alert('游戏结束! '+'得分是:'+ score);}if(score % 10 == 0){speed += 2;}})}// 创建盒子function create(){// 创建一行var rdiv = document.createElement('div');var random = Math.floor(Math.random()*4);// 随机出0-3的整数rdiv.setAttribute('class','rdiv');// 创建4列for(var i = 0 ; i < 4; i++){var odiv = document.createElement('div');odiv.setAttribute('class','odiv');rdiv.appendChild(odiv);           }      if(_box.children.length == 0){_box.appendChild(rdiv);}else{_box.insertBefore(rdiv,_box.children[0]);}var clickBox = _box.children[0].children[random];// 随机产生带颜色的小方块clickBox.className = 'odiv i';clickBox.style.backgroundColor = '#000';}
</script>

原生js实现(别踩白块小游戏)相关推荐

  1. 原生html小游戏,原生JS实现别踩白块小游戏(一)

    对于前端开发人员来说,闲暇之余自己开发个小游戏打发时间,也是对自己基础技术的一种应用考验.那么别踩白块小游戏,相信大家并不陌生,这个小游戏我们可以通过原生js来实现,即便是前端初学者也可以轻松完成. ...

  2. 别踩白块html源码,原生JS实现别踩白块小游戏(七)

    在前面的文章<原生JS实现别踩白块小游戏(六)>中,为大家介绍了实现别踩白块小游戏的js代码中移动效果的方法概述. 下面我们就继续结合源代码中js代码部分,为大家介绍具体的实现方法. 相关 ...

  3. 练手小项目——别踩白块小游戏

    参考:html5实现简单别踩白块小游戏 - XieYingpeng - 博客园 效果: 代码: <!DOCTYPE html> <html lang="en"&g ...

  4. html5合影拍照小游戏,html5实现简单别踩白块小游戏

    属于简化版别踩白块,代码相对较为简单易学,主要涉及通过 javascript 操作元素节点的增删以及属性节点(class)的操作. HTML/CSSJavaScript元素节点增删属性节点操作 在开始 ...

  5. jQuery实现别踩白块小游戏(简易版)

    别踩白块分享 这是个漫长的寒假,编程使我快乐.在学习jQuery时,在家练习做了这个小游戏,也算是提升一下实际使用能力. 现在记录下来给大家参考,不足之处请大家谅解. 先上截图: 使用代码前请先导入j ...

  6. 原生 JS 实现别踩方块儿小游戏 - 超简单

    古之立大事者,不惟有超世之才,亦必有坚忍不拔之志.--苏轼 案例效果 原生 JavaScript 实现的 别踩方块小游戏案例效果如下所示: 案例分析 静态页面 将这个静态页面可以划分为四个部分,如下图 ...

  7. c语言别踩白块小游戏代码,自学easeljs 根据别踩白块游戏规则自己写的代码

    主要基于       -------easeljs-0.7.1.min.js-----   去制作这个游戏 思路:主要思路是以行为单位 绑定可点击行 选中则讲 移动最外层容器继续绑定可点击行的下一行 ...

  8. C++别踩白块小游戏

    提示: 本游戏是基于EasyX图形库制作的,刚刚开始学习C++不是很完美,有不足的地方还请指出. ------------------------------------------ #include ...

  9. JS 实现别踩白块功能

    使用JS实现别踩白块功能.自己尚未完成.后序会继续完成的.该项目地址http://study.163.com/course/courseMain.htm?courseId=652005 <!DO ...

最新文章

  1. 1.Prometheus快速入门,Prometheus+node_exporter安装
  2. DIP原则、IoC以及DI
  3. 【ArcGIS风暴】ArcGIS快捷键大全
  4. 面向大数据处理应用的广域存算协同调度系统
  5. java那一年出来的_输入某年某月某日 判断其是那一年的第多少天
  6. springboot testcontext @sql_举世闻名的 SQL 注入是什么?这个漫画告诉你!
  7. java no provider for_No provider available for the service com.alibaba.
  8. java参数可变方法
  9. C语言从入门到精通pdf
  10. 下载的java游戏怎么运行不了_不支持JAVA的手机如何下载运行游戏和QQ
  11. ISO/IEC 27017:2015 标准信息安全策略
  12. oracle序时账是什么,​序时账和明细账区别是什么
  13. layui教程(一) form 表单的提交问题
  14. CS231n课程笔记翻译9:卷积神经网络笔记
  15. 微信小程序php后端接收小程序前端数组(array)
  16. 【WebGIS面试经验】(一)本以为没戏却成功了的面试
  17. c语言程序设计精品课课件,C语言程序设计 精品课课件(全套讲义).ppt
  18. 大学计算机英语听力,计算机二级 -【听力改革】大学英语六级听力改革基础训练 TEST 5(附音频MP3) -我要模考网...
  19. 如何使用信号量处理问题
  20. 一些免费实用的接口,调用次数无限制

热门文章

  1. DVWA [CSRF] 跨站请求伪造
  2. 百度手机输入法for android16,百度输入法下载
  3. 壳网七彩视界开源对接易支付原生播放器可投屏可选集
  4. android o 红米4x,Redmi新机开始预热,会不会是年度最佳游戏手机?
  5. 基于vue+ionic+capacitor的图书借阅app
  6. 如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数
  7. 计蒜客 - 硬币翻转
  8. 构造一个简单的操作系统内核,详解进程切换细节
  9. Xcode 构建优化全指南
  10. UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 660: ordinal not in range(128)