javascript怎么嵌入html javascript怎么颜色交替
将指导您如何使用JavaScript和HTML创建一个简单的互动表格游戏,该游戏允许用户通过点击单元格来切换其颜色以及周围单元格的颜色。我们将讨论如何初始化特定单元格的颜色,并提供代码优化建议,以简化实现并提高可维护性,最终实现动态调整表格大小的功能。初始化单元格颜色
在游戏开始时,我们可能需要将某些单元格默认为红色。一种有效的方法是使用二维数组来表示初始状态。数组中的每个元素代表一个单元格,例如,1代表红色,0代表白色。// 0=白色, 1=红色 const cellsToStartRed = [ [1, 0, 0, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 0, 0],];登录后复制
,然后在页面加载后,获取这个队列,根据队列的值设置对应单元格的背景颜色。function newGame(startConfig) { document.querySelector(quot;#youWonquot;).classList.add(quot;invisiblequot;); startConfig.forEach((row, rowNo) =gt; { row.forEach((cell, cellNo) =gt; { // 清除表格document.querySelector(`tr[data-row=quot;${rowNo}quot;] td[data-cell=quot;${cellNo}quot;]`).classList.remove(quot;bg-redquot;); if (cell === 1) document.querySelector(`tr[data-row=quot;${rowNo}quot;] td[data-cell=quot;${cellNo}quot;]`).classList.add(quot;bg-redquot;); }); });}newGame(cellsToStartRed);登录后复制
可能代码首先获取表格中所有的单元格,然后遍历cellsToStartRed 内存。如果内存中某些元素的值1,则将对应单元格的背景颜色设置为红色。
立即学习“Java免费学习笔记(深入)”;简化颜色逻辑
原始代码中,为每个单元格都定义了一个单独的函数来处理点击事件,这导致大量的重复代码。我们可以使用事件监听器和一些逻辑来简化这个过程。
首先,为每个单元格添加一个点击事件监听器:const cells = document.querySelectorAll(quot;td[data-cell]quot;);cells.forEach((cell) =gt; { cell.addEventListener(quot;clickquot;, () =gt; { const rowNo = parseInt(cell.parentNode.getAttribute(quot;data-rowquot;)); const cellNo = parseInt(cell.getAttribute(quot;data-cellquot;)); cell.classList.toggle(quot;bg-redquot;); //左 if (cellNo gt; 0) document.querySelector(`tr[data-row=quot;${rowNo}quot;] td[data-cell=quot;${cellNo - 1}quot;]`).classList.toggle(quot;bg-redquot;); //右 if (cellNo lt;cellsToStartRed[rowNo].length - 1) document.querySelector(`tr[data-row=quot;${rowNo}quot;] td[data-cell=quot;${cellNo 1}quot;]`).classList.toggle(quot;bg-redquot;); //顶部 if (rowNo gt; 0) document.querySelector(`tr[data-row=quot;${rowNo - 1}quot;] td[data-cell=quot;${cellNo}quot;]`).classList.toggle(quot;bg-redquot;); //底部 if (rowNo lt; cellsToStartRed.length - 1) document.querySelector(`tr[data-row=quot;${rowNo 1}quot;] td[data-cell=quot;${cellNo}quot;]`).classList.toggle(quot;bg-redquot;); checkIfWon(); });});登录后复制
be代码为每个单元格添加了一个点击事件监听器。当单元格被点击时,它会切换单元格本身的颜色,以及周围单元格的颜色。啵啵动漫
一键生成动漫视频,小白也能轻松做动漫。
116个详细信息动态生成表格
为了使游戏变得灵活,我们可以动态地生成表格。这意味着我们可以根据需要更改表格的大小,而修改HTML代码。const table = document.querySelector(quot;tablequot;);cellsToStartRed.forEach((row, rowNo) =gt; { table.innerHTML = `lt;tr data-row=quot;${rowNo}quot;gt;lt;/trgt;`; row.forEach((cell, cellNo) =gt; { document.querySelector(`tr[data-row=quot;${rowNo}quot;]`).innerHTML = `lt;td data-cell=quot;${cellNo}quot;gt;lt;/tdgt;`; if (cell === 1) document.querySelector(`tr[data-row=quot;${rowNo}quot;] td[data-cell=quot;${cellNo}quot;]`).classList.add(quot;bg-redquot;); }); });登录后复制
be代码首先清空表单的内容,然后遍历 cellsToStartRed队列,动态地生成表格的行和单元格。检查游戏是否胜利
为了让游戏更有趣,我们可以添加一个检查游戏胜利是否的函数。这个函数会检查所有的单元格是否都变成了红色。function checkIfWon() { if ([...cells].every((cell) =gt;cell.classList.contains(quot;bg-redquot;))) { document.querySelector(quot;#youWonquot;).classList.remove(quot;invisiblequot;); }}登录后复制
编写代码首先获取表格中所有的单元格,然后使用每个方法检查所有的单元格是否都包含 bg-red 类。如果所有的单元格显示都包含 bg-red 类,则 "You won!" 的消息。总结
通过使用二维数组来表示初始状态,使用事件监听器来简化颜色切换逻辑,以及动态地生成表格,我们创建一个更灵活、更可维护的互动表格游戏。另外,添加检查游戏是否胜利的函数可以使游戏更有趣。
以上就是JavaScript实现动态颜色切换的互动表格游戏的详细内容,更多请关注乐哥常识网其他相关文章! 相关标签: javascript java html node ssl ai 点击事件游戏本红JavaScript html事件