给我一个JavaScript的代码,实现随机转盘抽人
时间: 2023-06-05 18:07:40 浏览: 373
好的,以下是一个简单的 JavaScript 代码实现随机转盘抽人功能:
```
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>抽奖程序</title>
</head>
<body>
<h1>抽奖转盘</h1>
<p>请点击按钮开始抽奖:</p>
<button onclick="startLottery()">开始抽奖</button>
<canvas id="lottery" width="500" height="500"></canvas>
<script type="text/javascript">
// 获取画布和画笔
var canvas = document.getElementById('lottery');
var ctx = canvas.getContext('2d');
// 定义抽奖人员数组
var names = ["小明", "小红", "小刚", "小丽", "小芳", "小美"];
// 定义转盘样式数组
var colors = ["#FF0000", "#FF7F00", "#FFFF00", "#00FF00", "#00FFFF", "#0000FF"];
// 定义转盘每个角度
var angles = [60, 120, 180, 240, 300, 360];
// 定义抽奖是否开始的标志
var isStart = false;
// 开始抽奖函数
function startLottery() {
if (isStart) {
return;
}
// 标记为开始抽奖
isStart = true;
// 定义旋转角度
var rotateAngle = 0;
var rotateSpeed = 16;
// 定义时间间隔为 100 毫秒
var intervalId = setInterval(function() {
// 旋转角度增加
rotateAngle += rotateSpeed;
// 清空画布
ctx.clearRect(0, 0, canvas.width, canvas.height);
// 绘制转盘扇形
for (var i = 0; i < angles.length; i++) {
ctx.beginPath();
ctx.moveTo(250, 250);
ctx.arc(250, 250, 200, angles[i] * Math.PI / 180, angles[i] * Math.PI / 180 + 60 * Math.PI / 180);
ctx.closePath();
ctx.fillStyle = colors[i];
ctx.fill();
}
// 绘制转盘指针
ctx.save();
ctx.translate(250, 250);
ctx.rotate(rotateAngle * Math.PI / 180);
ctx.fillStyle = "#FFFFFF";
ctx.beginPath();
ctx.moveTo(-10, 0);
ctx.lineTo(0, -200);
ctx.lineTo(10, 0);
ctx.closePath();
ctx.fill();
ctx.restore();
// 旋转 30 圈后停止,并随机选出一个人员
if (rotateAngle >= 30 * 360) {
clearInterval(intervalId);
var index = Math.floor(Math.random() * names.length);
var selectedName = names[index];
alert("恭喜 " + selectedName + " 中奖!");
isStart = false;
}
}, 100);
}
</script>
</body>
</html>
```
阅读全文