用HTML和js做一个转盘抽奖,有特等奖,一等奖,二等奖,三等奖,旋转指针,有开始和结束按钮,按结束就会停止指针
时间: 2024-10-14 11:11:30 浏览: 26
要在网页上用HTML和JavaScript创建一个简单的转盘抽奖,你可以按照以下步骤进行:
1. HTML结构:
```html
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>转盘抽奖</title>
<style>
/* 添加样式以美化转盘 */
.roulette {
width: 400px;
height: 400px;
border-radius: 50%;
background-color: #f2f2f2;
display: flex;
justify-content: center;
align-items: center;
}
.sector {
width: 100%;
height: 100%;
position: absolute;
opacity: 0;
transition: opacity 1s ease;
}
.active-sector {
opacity: 1;
}
</style>
</head>
<body>
<div class="roulette">
<!-- 使用canvas绘制转盘 -->
<canvas id="rouletteCanvas"></canvas>
</div>
<button onclick="startGame()">开始</button>
<button onclick="stopGame()">结束</button>
<script src="roulette.js"></script>
</body>
</html>
```
2. JavaScript部分 (roulette.js):
```javascript
const sectors = [
{ name: '特等奖', index: 0 },
{ name: '一等奖', index: Math.floor(Math.random() * 3) + 1 },
{ name: '二等奖', index: Math.floor(Math.random() * 3) + 3 },
{ name: '三等奖', index: Math.floor(Math.random() * 3) + 6 },
];
let currentSectorIndex = -1;
function drawRoulette() {
// 在这里用canvas画出转盘和各个奖项区域
}
function rotateWheel() {
const randomIndex = Math.floor(Math.random() * sectors.length);
if (currentSectorIndex !== randomIndex) {
document.querySelectorAll('.sector').forEach((sector, index) => {
sector.style.opacity = index === randomIndex ? '1' : '0';
});
currentSectorIndex = randomIndex;
setTimeout(() => {
document.querySelector(`.sector:nth-child(${randomIndex + 1})`).classList.add('active-sector');
}, 500); // 稍微延迟一下让动画更自然
}
}
function startGame() {
drawRoulette();
setInterval(rotateWheel, 1000);
}
function stopGame() {
clearInterval(intervalId); // 停止定时器
}
startGame();
```
这个简单示例展示了如何创建基础的HTML结构和基本的JavaScript逻辑。你需要在`drawRoulette`函数中用canvas实际绘制转盘和各个奖项区域,并确保在页面加载后运行`startGame()`。记得将CSS和JavaScript文件链接到HTML里。
阅读全文