如何用JS制作九宫格抽奖的功能,思路及方法是什么
Admin 2022-06-30 群英技术资讯 605 次浏览
本文实例为大家分享了JavaScript实现抽奖器效果的具体代码,供大家参考,具体内容如下
这次实现的效果如下图:
所实现的功能是:当每次点击中间的抽奖按钮时,会随机选择一个盒子作为抽奖的结果。
那我们要如何实现抽奖的功能呢?
其实很简单,首先用html和css做出整体的框架,然后用js在中间按钮的onclick
函数中设置定时器+随机改变某一盒子的背景颜色就可以了。 下面我们来讨论一下细节的方面:
1、设计整体框架时,我们需要为每个盒子设置边框,这时会发现边框会出现重叠问题,导致边框变厚,解决的方法是:设置margin-right
和margin-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>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在Excel中,我们可以通过拖拉表格来实现自动计算表格的内容,那么我们做网页版的Excel表格,这个功能要如何实现呢?接下来小编就给大家分享用JavaScript实现拖拉表格自动计算内容的功能。
这篇文章主要介绍了vue 如何实现拖拽动态生成组件的需求,帮助大家更好的理解和学习使用vue框架,感兴趣的朋友可以了解下
es6新增加了一个运算符,叫做扩展运算符,这个运算符用在数组前面,会把数组展开变成各个独立的值,这篇文章主要给大家介绍了关于ES6扩展运算符的相关资料,需要的朋友可以参考下
假设是使用nodejs+express3这个经典的组合。那么有一种非常方面的处理回调函数异常的方法:1.安装模块:express-domain-middleware2.增加例如以下的代码:app.use(require('express-domain-middleware'));app.use(functionerrorHandler(err,req,res,next){
跨域指浏览器不允许当前页面的所在的源去请求另一个源的数据,下面这篇文章主要给大家介绍了关于VUE跨域详解以及常用解决跨域的方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008