您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery | 小程序 |

JavaScript实现抽奖器效果

51自学网 2022-02-21 13:39:03
  javascript

本文实例为大家分享了JavaScript实现抽奖器效果的具体代码,供大家参考,具体内容如下

这次实现的效果如下图:

所实现的功能是:当每次点击中间的抽奖按钮时,会随机选择一个盒子作为抽奖的结果。

那我们要如何实现抽奖的功能呢?

其实很简单,首先用html和css做出整体的框架,然后用js在中间按钮的onclick函数中设置定时器+随机改变某一盒子的背景颜色就可以了。 下面我们来讨论一下细节的方面:

1、设计整体框架时,我们需要为每个盒子设置边框,这时会发现边框会出现重叠问题,导致边框变厚,解决的方法是:设置margin-rightmargin-bottom负值(值等于边框值)。

2、.在js中设置抽奖功能时,我们可以通过设置一个定时器A,在其中随机改变某一盒子的background-color代表选中。为使抽奖可以在某一时刻暂停,我们可以设置定时器B,在某一时刻将定时器A关闭。

3、随机改变是怎么做到的呢? 首先调用document.getElementsByTagName获取所有盒子,然后利用Math.random()*盒子的数目,获取某一盒子下标,改变其背景颜色。

很显然定时器A是setInterval,定时器B是setTimeout

而且在A中改变某一盒子背景颜色时,要将上一个被改变颜色的盒子还原为原来的颜色,我们需要记录上次被改变背景颜色的盒子。

具体见下面代码:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Document</title>    <style>        *{            margin:0;            padding: 0;        }        .container{            width: 400px;            height: 400px;            margin:50px auto;        }        span,#main{            display: block;            width: 100px;            height: 100px;            border:2px pink solid;            float:left;            margin-left:-2px;            margin-bottom:-2px;            text-align: center;            line-height: 100px;            border-radius: 16px;            box-shadow: 2px 2px 3px rgba(226, 86, 109, 0.459);        }        #main{            background-color: rgba(243, 97, 126, 0.651);            cursor: pointer;        }    </style></head><body>    <div class="container">        <div>            <span>可视化</span>            <span>图形学</span>            <span>操作系统</span>        </div>        <div>            <span>乐事</span>            <div id="main">抽奖</div>            <span>大白兔</span>        </div>        <div>            <span>柠檬水</span>            <span>黑咖啡</span>            <span>芋泥奶茶</span>        </div>    </div>    <script>        let main=document.getElementById("main");        let box=document.getElementsByTagName("span");        var num=null;        main.onclick=function(){            let tem=setInterval(() => {                if(num!==null){                    box[num].style.backgroundColor="white";                }                num=parseInt(Math.random()*8);                box[num].style.backgroundColor="rgba(243, 97, 126, 0.651)";                console.log(num);            }, 120);            setTimeout(() => {                clearInterval(tem)            }, 3000);        }    </script></body></html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持51zixue.net。


下载地址:
JavaScript实现二级菜单的制作
Echarts利用多X轴实现七天天气预报效果的示例代码
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。