酷炫的随机点名 可手动控制概率的html
时间: 2023-11-06 10:08:47 浏览: 33
代码如下:
```html
<!DOCTYPE html>
<html>
<head>
<title>随机点名</title>
<style type="text/css">
body {
background-color: #f1f1f1;
font-family: Arial, sans-serif;
font-size: 16px;
}
h1 {
text-align: center;
margin-top: 50px;
}
.btn-container {
display: flex;
justify-content: center;
margin-top: 50px;
}
.btn {
background-color: #4CAF50;
color: white;
border: none;
padding: 10px 20px;
border-radius: 5px;
cursor: pointer;
margin-right: 10px;
}
.btn:hover {
background-color: #3E8E41;
}
.input-container {
display: flex;
justify-content: center;
margin-top: 50px;
}
.input {
padding: 10px;
border-radius: 5px;
border: none;
margin-right: 10px;
width: 100px;
text-align: center;
}
.result-container {
display: flex;
flex-wrap: wrap;
justify-content: center;
margin-top: 50px;
}
.result {
background-color: #ddd;
padding: 10px;
border-radius: 5px;
margin: 10px;
font-weight: bold;
text-align: center;
width: 100px;
height: 100px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
cursor: pointer;
transition: all 0.2s ease-in-out;
}
.result:hover {
background-color: #bbb;
}
.result.selected {
background-color: #4CAF50;
color: white;
}
</style>
</head>
<body>
<h1>随机点名</h1>
<div class="btn-container">
<button class="btn" onclick="start()">开始</button>
<button class="btn" onclick="stop()">停止</button>
<button class="btn" onclick="reset()">重置</button>
</div>
<div class="input-container">
<label>概率(%):</label>
<input type="number" class="input" min="0" max="100" value="50" oninput="setProbability()">
</div>
<div class="result-container">
<div class="result"></div>
</div>
<script type="text/javascript">
var intervalId;
var probability = 50;
var selected = null;
function start() {
if (!intervalId) {
intervalId = setInterval(selectRandom, 100);
}
}
function stop() {
if (intervalId) {
clearInterval(intervalId);
intervalId = null;
selected.classList.add('selected');
}
}
function reset() {
if (intervalId) {
clearInterval(intervalId);
intervalId = null;
}
selected = null;
document.querySelectorAll('.result').forEach(function(result) {
result.classList.remove('selected');
});
}
function setProbability() {
probability = parseInt(document.querySelector('.input').value);
}
function selectRandom() {
document.querySelectorAll('.result').forEach(function(result) {
result.classList.remove('selected');
});
var random = Math.floor(Math.random() * 100);
if (random < probability) {
selected = document.querySelectorAll('.result')[Math.floor(Math.random() * document.querySelectorAll('.result').length)];
}
}
document.querySelectorAll('.result').forEach(function(result) {
result.addEventListener('click', function() {
if (selected === result) {
result.classList.remove('selected');
selected = null;
} else {
document.querySelectorAll('.result').forEach(function(result) {
result.classList.remove('selected');
});
result.classList.add('selected');
selected = result;
}
});
});
</script>
<script type="text/javascript">
var names = ['张三', '李四', '王五', '赵六', '孙七', '周八', '吴九', '郑十'];
for (var i = 0; i < 8; i++) {
document.querySelectorAll('.result')[i].innerHTML = names[i];
}
</script>
</body>
</html>
```
效果如下:
![随机点名](https://i.loli.net/2021/08/01/rjKlS1CvL7bJxkW.png)