【发布时间】:2020-05-20 20:59:23
【问题描述】:
我对 JavaScript 完全陌生。从下面的代码中,确保单击时背景颜色不会重复的正确方法是什么?
添加:我需要下一个颜色而不是上一个颜色,因为如果是这样,您将无法知道单击时页面是否正常工作。如果整个数组随机重复本身就可以,只要相同的颜色随后不重复两次,例如红色,然后又是红色。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>01</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
</head>
<body>
<div class="container">
<div class="row vh-100 d-flex align-items-center">
<div class="col text-center">
<button>Click Me!</button>
</div>
</div>
</div>
</div>
<script>
const button = document.querySelector('button')
const body = document.querySelector('body')
const colors = ['red', 'green', 'blue', 'yellow', 'pink', 'purple']
body.style.backgroundColor = 'violet'
button.addEventListener('click', changeBackground)
function changeBackground(){
const colorIndex = parseInt(Math.random()*colors.length)
body.style.backgroundColor = colors[colorIndex]
}
</script>
</body>
</html>
【问题讨论】:
-
1.随机排列数组 2. 按顺序从中取出项目。它是随机的,并且不重复。
-
我需要了解...您总共有 6 种颜色...那么如果用户单击 6 次然后没有其他唯一颜色可用...最终会重复... .??
-
您好,我将编辑问题,我只需要下一个颜色而不是上一个颜色,因为如果是这样,您无法知道单击时页面是否正常工作。只要相同的颜色不重复两次,它们就可以重复自己。编辑:例如红色后不能再变红只是为了说明页面正常工作。
-
介意提供示例代码吗?抱歉,我是个新手。
-
如果你使用randojs.com,你可以使用
colors = randoSequence(colors); var nextColor = colors.pop().value;
标签: javascript math random