用js简单设计一个抽奖转盘
时间: 2024-03-05 11:50:36 浏览: 130
点击按钮即可转盘抽奖js代码.zip
好的,以下是一个使用JS实现的简单抽奖转盘:
HTML代码:
```html
<div id="wheel"></div>
<button onclick="start()">开始抽奖</button>
```
CSS代码:
```css
#wheel {
width: 200px;
height: 200px;
border-radius: 50%;
background-color: #ff9933;
position: relative;
overflow: hidden;
margin: 30px auto;
}
#wheel:before {
content: '';
display: block;
width: 0;
height: 0;
border-style: solid;
border-width: 0 100px 173.2px 100px;
border-color: transparent transparent #ffcc33 transparent;
position: absolute;
top: 50px;
left: 50px;
transform-origin: bottom center;
transform: rotate(0deg);
transition: transform 6s ease-in-out;
}
#wheel:after {
content: '';
display: block;
background-color: #fff;
width: 80px;
height: 80px;
border-radius: 50%;
position: absolute;
top: 60px;
left: 60px;
z-index: 1;
}
button {
display: block;
margin: 0 auto;
padding: 10px 20px;
font-size: 20px;
font-weight: bold;
color: #fff;
background-color: #ff9933;
border: none;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s ease-in-out;
}
button:hover {
background-color: #ffcc33;
}
```
JS代码:
```javascript
var deg = 0;
var speed = 0;
var prize = '';
function start() {
// 生成一个随机速度
speed = Math.floor(Math.random() * 20) + 10;
// 生成一个随机奖品
prize = Math.floor(Math.random() * 6) + 1;
// 计算需要旋转的角度
deg = 360 / 6 * (prize - 1) + 360 / 6 / 2 - Math.random() * 360 / 6;
// 开始旋转转盘
var wheel = document.querySelector('#wheel:before');
wheel.style.transform = 'rotate(' + deg + 'deg)';
wheel.style.transition = 'transform 6s ease-in-out';
// 6秒后停止旋转
setTimeout(function() {
stop();
}, 6000);
}
function stop() {
// 停止旋转
var wheel = document.querySelector('#wheel:before');
wheel.style.transform = 'rotate(' + deg + 'deg)';
wheel.style.transition = 'transform 0s';
// 显示中奖结果
alert('恭喜您获得:奖品' + prize);
}
```
这个抽奖转盘使用了CSS3的旋转效果来实现转盘的转动,使用JS生成随机速度和奖品,并计算需要旋转的角度。在点击开始抽奖按钮后,将旋转指针旋转到指定角度,并在6秒后停止旋转,并弹出中奖结果提示框。
阅读全文