彩色高级转盘抽奖html
时间: 2023-07-08 12:48:05 浏览: 172
以下是一个使用 CSS 样式和 JavaScript 脚本实现的彩色高级转盘抽奖 HTML 页面代码示例:
```
<!DOCTYPE html>
<html>
<head>
<title>高级转盘抽奖</title>
<style>
body {
background-color: #f2f2f2;
font-family: Arial, sans-serif;
text-align: center;
}
h1 {
color: #333;
margin-top: 50px;
}
#canvas {
margin: 0 auto;
display: block;
width: 500px;
height: 500px;
}
#spin-btn {
background-color: #333;
color: #fff;
padding: 10px 20px;
border: none;
border-radius: 5px;
cursor: pointer;
font-size: 16px;
transition: all 0.3s ease;
margin-top: 20px;
}
#spin-btn:hover {
background-color: #666;
}
</style>
</head>
<body>
<h1>高级转盘抽奖</h1>
<canvas id="canvas"></canvas>
<button id="spin-btn">开始抽奖</button>
<script>
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var colors = ["#FF4136", "#FF851B", "#FFDC00", "#2ECC40", "#0074D9", "#B10DC9", "#F012BE", "#85144b"];
var prizes = ["一等奖", "二等奖", "三等奖", "四等奖", "五等奖", "六等奖", "七等奖", "八等奖"];
var angle = 0;
var index = 0;
var spinning = false;
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.beginPath();
ctx.moveTo(250, 250);
for (var i = 0; i < 8; i++) {
ctx.fillStyle = colors[i];
ctx.arc(250, 250, 200, angle, angle + Math.PI / 4, false);
ctx.lineTo(250, 250);
ctx.fill();
angle += Math.PI / 4;
ctx.beginPath();
ctx.moveTo(250, 250);
}
ctx.font = "bold 30px Arial";
ctx.fillStyle = "#fff";
ctx.textAlign = "center";
ctx.textBaseline = "middle";
for (var i = 0; i < 8; i++) {
ctx.save();
ctx.translate(250, 250);
ctx.rotate(angle - Math.PI / 8);
ctx.fillText(prizes[i], 120, 0);
ctx.restore();
angle += Math.PI / 4;
}
angle = 0;
}
function spin() {
if (!spinning) {
spinning = true;
var randomAngle = Math.floor(Math.random() * 360) + 3600;
var time = 5000;
var startTime = Date.now();
var endTime = startTime + time;
var startAngle = angle;
var endAngle = angle + (randomAngle * Math.PI / 180);
var spinInterval = setInterval(function() {
var now = Date.now();
if (now < endTime) {
var percent = (now - startTime) / time;
angle = startAngle + (endAngle - startAngle) * percent;
draw();
} else {
clearInterval(spinInterval);
angle = endAngle % (2 * Math.PI);
index = Math.floor(angle / (Math.PI / 4));
alert("恭喜您获得:" + prizes[index] + "!");
spinning = false;
}
}, 10);
}
}
draw();
document.getElementById("spin-btn").addEventListener("click", spin);
</script>
</body>
</html>
```
上述代码中,我们使用了 CSS 样式和 JavaScript 脚本来创建了一个彩色高级转盘抽奖的 HTML 页面。其中,`canvas` 元素用于绘制转盘和奖项,`button` 元素用于触发抽奖操作。我们通过使用 `getContext` 方法获取了画布的上下文,使用 `arc` 方法绘制了转盘的扇形区域,使用 `fillText` 方法绘制了奖项的名称。在 JavaScript 脚本中,我们定义了 `draw` 和 `spin` 函数分别用于绘制转盘和执行抽奖操作。在 `spin` 函数中,我们使用了 `setInterval` 方法来模拟转盘旋转的效果,使用 `Math.random` 方法生成随机角度,使用 `Date.now` 方法获取当前时间,使用 `clearInterval` 方法清除定时器,最后根据随机角度计算出中奖的奖项。通过使用 CSS 样式和 JavaScript 脚本,我们可以为网页增添更多的交互性和娱乐性。
阅读全文