JS实现抽奖器效果
JavaScript实现抽奖器效果
本文实例为大家分享了JavaScript实现抽奖器效果的具体代码,供大家参考,具体内容如下
二、部分解释
其实就是一个简单的进行一个选择的js代码
所实现的功能是:当每次点击中间的抽奖按钮时,会随机选择一个盒子作为抽奖的结果。
那我们要如何实现抽奖的功能呢?
其实很简单,首先用html和css做出整体的框架,然后用js在中间按钮的onclick
函数中设置定时器+随机改变某一盒子的背景颜色就可以了。 下面我们来讨论一下细节的方面:
核心代码
<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>
1、设计整体框架时,我们需要为每个盒子设置边框,这时会发现边框会出现重叠问题,导致边框变厚,解决的方法是:设置margin-right
和margin-bottom
为负值(值等于边框值)。
2、.在js中设置抽奖功能时,我们可以通过设置一个定时器A,在其中随机改变某一盒子的background-color
代表选中。为使抽奖可以在某一时刻暂停,我们可以设置定时器B,在某一时刻将定时器A关闭。
3、随机改变是怎么做到的呢? 首先调用document.getElementsByTagName
获取所有盒子,然后利用Math.random()*盒子的数目
,获取某一盒子下标,改变其背景颜色。
很显然定时器A是setInterval
,定时器B是setTimeout
。
而且在A中改变某一盒子背景颜色时,要将上一个被改变颜色的盒子还原为原来的颜色,我们需要记录上次被改变背景颜色的盒子。
转载自:https://juejin.cn/post/7139845210447544327