js进行随机文字抽奖代码demo
<!doctype html> <html> <head> <meta charset="utf-8"> <title>原生js随机文字抽奖代码</title> <style> *{margin: 0;padding: 0} .title{width: 200px;height: 50px;margin: 0 auto;font-size: 20px;color: red;margin-top: 30px;font-weight: bold; padding-left: 140px;} .bs{width: 200px;margin: 0 auto;} .bs span{display: inline-block;width: 60px;background-color: #708098;color: #fff;height: 30px;line-height: 30px;text-align: center;margin-left: 33px;border-radius: 5px;cursor: pointer; font-family: '微软雅黑';} </style> </head> <body> <div class="main"> <div class="title">开始抽奖啦!!!</div> <div class="bs"> <span class="begin">开 始</span> <span class="stop">停 止</span> </div> </div> </body> <script> //定义一个数组变量存放几个数据,一个定时器,一个标识变量 var data=['ipad mini','iphone 6','iphone 6s玫瑰金','kindle','ipad air','超极本'], timer=null, flag=0; //封装一个方法拿到 通过class拿到的标签 注意拿到的时候是个数组对象,记得最后[0],取一下第一个对象 function getByClass(clsName,parent){ var oParent=parent?document.getElementById(parent):document, eles=[], elements=oParent.getElementsByTagName('*'); for(var i=0;i<elements.length;i++){ if(elements[i].className == clsName){ eles.push(elements[i]); } } return eles; } //函数开始 window.onload=function(){ var oTitle=getByClass('title')[0], begin=getByClass('begin')[0], stop=getByClass('stop')[0]; //开始抽奖 begin.onclick=fnplay; stop.onclick=fnstop; //键盘事件 针对的是整个document document.onkeyup=fnkey; function fnplay(){ //var that=this;//这里指的是begin这个按钮 这里暂时不考虑这个。 //每个开始之前关闭一下定时器,不然每次按click的时候容易加快速度,以至于整个浏览器容易奔溃 clearInterval(timer); //定义一个定时器 timer=setInterval(function(){ //Math.random()拿到的是0-1之前的数字,去乘数组的长度 再取整数可以拿到想要的数组下标 var random=Math.floor(Math.random()*data.length); //floor去取整 //把拿到的数组的值写进去 oTitle.innerHTML=data[random]; },50); //按开始之后,让颜色改变一下 begin.style.background="#999"; } function fnstop(){ clearInterval(timer); //恢复为原来的颜色 begin.style.background="#708098"; } function fnkey(event){ console.log(event.keyCode); event=event ||window.event; if(event.keyCode == 13){ //当按下回车键的时候 //一开始是0的状态,我们改变。 if(flag == 0){ fnplay(); //设置为1的状态,停止改变 flag =1; }else{ fnstop(); flag=0; } } } } </script> </html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构