用JS做关灯游戏(初级)
这是一个很有意思的游戏,可以试着玩下。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style media="screen">
#wrap {
width: 500px;
height: 500px;
margin: auto;
position: relative;
}
</style>
</head>
<body>
<div id="wrap">
</div>
</body>
<script type="text/javascript">
var wrap = document.getElementById('wrap');
var lights = []; // 定义数组
for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
var aLight = document.createElement('div'); // 定义一个新的div 关灯游戏的灯
wrap.appendChild(aLight); //把aLight放入wrap中
aLight.style.width = '10%'; //定义宽度
aLight.style.height = '10%'; //定义高度
aLight.style.border = '1px solid blue';
aLight.style.background = 'black';
aLight.style.position = 'absolute';
aLight.style.left = j * 10 + '%'; // j * 10 + '%' 表示横向的长度 当j = 9 是 长度为500px 即 开始下一行
aLight.style.top = i * 10 + "%"; // i* 10 + '%' 表示丛向的长度 当i = 9 是 长度为500px 即 开始下一列
aLight.index = lights.length;
lights.push(aLight); // 将aLight 放入到数组 lights 中
aLight.onclick = function(){ // 点击事件 函数运行
var currentLight = event.target; //首先改变当前颜色的light的颜色 。 event.target 是指当前正在接受事件的对象。 如果点击div 则就是点击div本身
if (currentLight.style.backgroundColor == 'black') { // 如果背景色为黑色
currentLight.style.backgroundColor = 'red'; // 则变成红色
}else {
currentLight.style.backgroundColor = 'black'; // 否则继续变为黑色
}
if (currentLight.index >= 10) { // 获取上面那一行的灯
var topLight = lights[currentLight.index - 10];
topLight.style.backgroundColor = (topLight.style.backgroundColor == 'black') ? 'red' : 'black';
}
if (currentLight.index + 10 < lights.length) { //获取下面那行的灯
var bottomLight = lights[currentLight.index + 10];
bottomLight.style.backgroundColor = (bottomLight.style.backgroundColor == 'black') ? 'red' : 'black';
}
if (currentLight.index % 10 != 0) { //获取左边那行的灯
var leftLight = lights[currentLight.index - 1];
leftLight.style.backgroundColor = (leftLight.style.backgroundColor == 'black') ? 'red' : 'black';
}
if (currentLight.index % 10 != 9) { // 获取右边那行的灯
var rightLight = lights[currentLight.index + 1];
rightLight.style.backgroundColor = (rightLight.style.backgroundColor == 'black') ?'red' : 'black';
}
}
}
}
</script>
</html>
转载于:https://www.cnblogs.com/Sabo-dudu/p/5734854.html
用JS做关灯游戏(初级)相关推荐
- 原生js做打地鼠游戏
学原生js的语法其实是容易的,最主要的练习逻辑思维.对于刚刚学完js的语法的我来说,写这个打地鼠游戏真的花费了我一整天的时间.整体感觉写出来的js代码,其实就是平时练习的一些小案例的代码拼起来的,js ...
- 也分享自己做的JS扫雷小游戏
看了草根程序猿分享的JS扫雷小游戏 想起去年的时候自己也做了一个 于是也拿出来分享之 先上截图~ 引用了jQuery,节省了很多鼠标点击上的判断 界面显然都是照搬Windows的扫雷啦 详细的内容注释 ...
- 用 JS 做一个数独游戏(二)
用 JS 做一个数独游戏(二) 在 上一篇博客 中,我们通过 Node 运行了我们的 JavaScript 代码,在控制台中打印出来生成好的数独终盘.为了让我们的数独游戏能有良好的体验,这篇博客将会为 ...
- [教你做小游戏] 只用几行原生JS,写一个函数,播放音效、播放BGM、切换BGM
我是HullQin,公众号线下聚会游戏的作者(欢迎关注公众号,发送加微信,交个朋友),转发本文前需获得作者HullQin授权.我独立开发了<联机桌游合集>,是个网页,可以很方便的跟朋友联机 ...
- 用纯JS做俄罗斯方块 - 简要思路介绍(1)
大家都知道俄罗斯方块是一款大众化的游戏了,我很小的时候就玩过,今年已经25岁了,可以说俄罗斯方块确实是历史悠久,做俄罗斯方块是我上个星期开始的想法.也许是由于自己从来没有写过这种东西吧,所以有生疏.代 ...
- qt web混合编程_QT做界面真是绝美,并且还可嵌入HTML与JS做界面(许多案例)
1. 这年头想要酷炫, 还是用web最方便, QT自带嵌入式webkit, 然后用d3.js D3.js - Data-Driven Documents什么的, 各种酷炫的互动表随手而来. 这里有各种 ...
- mfc做数独游戏_我终于在iPhone上找到了体验最好的数独游戏
我已经被一个 9×9 的格子困住将近 30 分钟,它既让人深陷其中还欲罢不能. 玩<数独 2>这款 app 之前我是抗拒的,因为我对数字超级无感,但抱着朋友告诉我入门很简单后试一试的心态, ...
- 用js做一个数字华容道
我很喜欢华容道啊,这次用js做一个 话不多说上代码 <!DOCTYPE html> <html><head><meta charset="UTF-8 ...
- JS开发HTML5游戏《神奇的六边形》(四)
近期出现一款魔性的消除类HTML5游戏<神奇的六边形>,今天我们一起来看看如何通过开源免费的青瓷引擎(www.zuoyouxi.com)来实现这款游戏. (点击图片可进入游戏体验) 因内容 ...
- JS开发HTML5游戏《神奇的六边形》(七)
近期出现一款魔性的消除类HTML5游戏<神奇的六边形>,今天我们一起来看看如何通过开源免费的青瓷引擎(www.zuoyouxi.com)来实现这款游戏. (点击这里可进入游戏体验) 因内容 ...
最新文章
- 使用Keras训练自动驾驶(使用Udacity自动驾驶模拟器)
- Rosetta | Rosetta简介
- android studio 的自动更新问题
- CTFshow 命令执行 web64
- vue 仿二手交易app_项目vue2.0仿外卖APP(七)
- PHP 入门 - 10.应用技术
- mysql 一维转二维_php 二维转一维,并取固定字段
- php怎么实现弹幕,HTML如何利用canvas实现弹幕功能
- ubuntu 下 opencv 3. 的安装和运行
- 华为正式发布鸿蒙OS操作系统,分布式架构首次用于终端
- snmptrap发送消息到服务器,我试图通过snmptrap发送snmp消息
- Excel常见统计图表汇总
- SDRAM-高手进阶,终极内存技术指南----学习笔记
- java多线程问题(代码示例)
- 自然底数e究竟“自然”在哪?
- 大数据———Flume与Kafka整合
- 酷炫小程序相册源码,制作属于自己的相册,免费下载
- oracle 的 rank()函数
- 记win10下ubantu子系统运行shell脚本的坑
- GitHub Action入门简介
热门文章
- 第十五章:进程间通信
- GridView合并表头多重表头无错完美版(以合并3列3行举例)
- 【2017级面向对象程序设计】作业二
- 自己封装的一个模拟下拉列表的插件
- [CareerCup] 18.4 Count Number of Two 统计数字2的个数
- 为什么找不到解决方案?--答案就是:转个弯 这里以“解决表示图左边缺失线条、边缘线、分割线问题”为例...
- 给iOS开发新手送点福利,简述UIPageControl的属性和用法
- 听一下牛人是怎样自学MIT计算机系全部课程的[转]
- 开发人员一定要加入收藏夹的网站
- PyCharm载入Anaconda环境