制作一个抽奖转盘 要求:循环的使用; javascript基本随机函数算法 [0,1] [0,0.0001] [0.0001,0.0002] [0.0002,0.1 [0.1,1]代码简洁,不需要图片就能抽奖,完整代码。
时间: 2023-08-18 10:33:52 浏览: 153
javascript 随机抽奖程序代码
好的,我可以为您提供一个简单的抽奖转盘的实现方案。首先,我们需要一个 HTML 页面来实现抽奖转盘的界面,如下所示:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>抽奖转盘</title>
<style>
#rotate {
width: 200px;
height: 200px;
margin: 0 auto;
position: relative;
border-radius: 50%;
overflow: hidden;
}
#rotate div {
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
box-sizing: border-box;
border: 100px solid white;
}
#rotate div:nth-child(1) {
border-color: #f00;
transform: rotate(0deg);
}
#rotate div:nth-child(2) {
border-color: #0f0;
transform: rotate(60deg);
}
#rotate div:nth-child(3) {
border-color: #00f;
transform: rotate(120deg);
}
#rotate div:nth-child(4) {
border-color: #f0f;
transform: rotate(180deg);
}
#rotate div:nth-child(5) {
border-color: #ff0;
transform: rotate(240deg);
}
#rotate div:nth-child(6) {
border-color: #0ff;
transform: rotate(300deg);
}
#pointer {
width: 20px;
height: 20px;
background-color: red;
position: absolute;
left: 90px;
top: 90px;
transform: rotate(0deg);
transform-origin: 50% 50%;
border-radius: 50%;
}
button {
margin-top: 20px;
}
</style>
</head>
<body>
<div id="rotate">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div id="pointer"></div>
</div>
<button onclick="startRotate()">开始抽奖</button>
<script>
// 在这里实现抽奖转盘的逻辑
</script>
</body>
</html>
```
在上面的代码中,我们使用了一个 div 元素来作为抽奖转盘的容器,并在其中嵌套了多个 div 元素来分别表示不同的抽奖奖项。同时,我们还使用了一个 div 元素来表示指针,并将其默认位置设置为转盘的中心点。最后,我们在页面中添加了一个按钮,并在点击按钮时调用一个名为 startRotate 的函数来开始抽奖。
接下来,我们需要在 JavaScript 中实现 startRotate 函数,来控制指针的旋转,并最终停留在一个随机的奖项上。具体实现方案如下:
```javascript
function startRotate() {
// 随机生成一个 [0, 1) 之间的实数
var random = Math.random();
// 根据不同的随机值确定指针旋转的角度
var deg;
if (random < 0.0001) {
deg = 30;
} else if (random < 0.0002) {
deg = 90;
} else if (random < 0.1) {
deg = 150;
} else {
deg = 210;
}
// 让指针旋转到指定的角度
var pointer = document.getElementById('pointer');
pointer.style.transform = 'rotate(' + deg + 'deg)';
// 显示抽奖结果
setTimeout(function() {
var result;
if (deg == 30) {
result = '恭喜您获得一等奖!';
} else if (deg == 90) {
result = '恭喜您获得二等奖!';
} else if (deg == 150) {
result = '恭喜您获得三等奖!';
} else {
result = '很遗憾,未中奖。';
}
alert(result);
}, 3000);
}
```
在上面的代码中,我们首先使用 Math.random 函数来生成一个 [0, 1) 之间的随机实数。然后,根据不同的随机值,我们将指针旋转到不同的角度上,以模拟抽奖的过程。最后,我们使用 setTimeout 函数来延迟 3 秒钟,以模拟抽奖的等待过程,并在延迟结束后显示抽奖结果。
需要注意的是,我们在这里使用了多个 if 语句来判断随机值的范围,以确定指针旋转的角度。同时,我们还需要根据实际需求来修改抽奖结果的显示方式。
阅读全文