纯前端实现—抽奖小游戏

举报
孤寒者 发表于 2021/12/25 22:03:59 2021/12/25
【摘要】 实现效果: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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。