纯前端实现—抽奖小游戏
【摘要】 实现效果:B站视频地址:https://player.bilibili.com/player.html?aid=461792804 源码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>抽奖</title> <style> .box{ width: ...
实现效果:
B站视频地址:https://player.bilibili.com/player.html?aid=461792804
源码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>抽奖</title>
<style>
.box{
width: 606px;
height: 606px;
border: 1px solid #dfff4a;
margin: 100px auto;
}
.option{
width: 200px;
height: 200px;
border: 1px solid #dfff4a;
background-color: green;
font-size: 15px;
color: white;
text-align: center;
line-height: 200px;
float: left;
}
/*设置动画,以实现旋转
第一个参数是变化的属性,all是整个盒子都进行动画;
第二个参数0.5s是动画执行的时间;
第三个参数是动画的方式:linear(匀速),ease-in由慢到快,ease-out由快到慢,ease-in-out慢到快到慢
第四个参数是动画延时多久再执行
*/
.box .five{
transition: all 0.5s ease-in-out 0s;
}
.box .five:hover{
cursor: pointer;
font-size: 35px;
color: #494aff;
background-color: white;
/*放大倍数,转换的角度*/
transform: scale(1.2) rotate(360deg);
}
</style>
</head>
<body>
<div class="box">
<div class="option">python编程从入门到跑路</div>
<div class="option">c编程从入门到跑路</div>
<div class="option">java编程从入门到跑路</div>
<div class="option">cpython编程从入门到跑路</div>
<div class="option five">点击抽奖</div>
<div class="option">go编程从入门到跑路</div>
<div class="option">汇编从入门到跑路</div>
<div class="option">php编程从入门到跑路</div>
<div class="option">BASIC编程从入门到跑路</div>
</div>
<script>
// 获取元素
var options = document.getElementsByClassName("option");
var button = document.getElementsByClassName("five")[0];
// 所有奖项下标的值
var arr = [0,1,2,5,8,7,6,3];
// 数组的下标的初始值
var num = 0;
// 转动的次数
var count = 0;
button.addEventListener("click",function () {
// 获取的随机数 转动的次数
var time = Math.ceil(Math.random()*16+16);
// 定时器来抽奖
var timer = setInterval(function () {
// 遍历arr数组 目的:如果不设置这个循环,那么一次走过的奖项都会变色,变不回原来的颜色
for(var i=0;i<arr.length;i++){
options[arr[i]].style.backgroundColor = "green";
}
// 走到的奖项
options[arr[num]].style.backgroundColor = "red";
num++;
// 如果上面数组的下标值为8时,要重新赋值为0
if(num == 8){
num = 0;
}
// 走的div的个数
count++;
// 如果转动的次数与获取的随机数一致的情况下,清除定时器
if(count==time){
clearInterval(timer);
// 转动的次数清零
count = 0;
}
},100)
})
</script>
</body>
</html>
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)