news 2026/4/18 10:02:26

html转盘抽奖程序

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
html转盘抽奖程序


网页代码如下:

<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>幸运转盘抽奖</title><scriptsrc="https://cdn.tailwindcss.com"></script><linkhref="https://cdn.bootcdn.net/ajax/libs/font-awesome/6.4.0/css/all.min.css"rel="stylesheet"><style>@keyframesrotate{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}.wheel-container{position:relative;width:400px;height:400px;margin:0 auto;}.wheel{width:100%;height:100%;border-radius:50%;position:relative;overflow:hidden;box-shadow:0 10px 30pxrgba(0,0,0,0.3);transition:transform 4scubic-bezier(0.23,1,0.32,1);}.wheel-segment{position:absolute;width:50%;height:50%;transform-origin:right bottom;display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:14px;color:white;text-shadow:1px 1px 2pxrgba(0,0,0,0.5);}.wheel-pointer{position:absolute;top:-10px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:15px solid transparent;border-right:15px solid transparent;border-top:30px solid #ef4444;z-index:10;}.wheel-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;color:white;font-weight:bold;font-size:16px;box-shadow:0 4px 15pxrgba(0,0,0,0.3);cursor:pointer;transition:all 0.3s ease;z-index:5;}.wheel-center:hover{transform:translate(-50%,-50%)scale(1.1);box-shadow:0 6px 20pxrgba(0,0,0,0.4);}.wheel-center.spinning{pointer-events:none;opacity:0.8;}.prize-card{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:white;border-radius:15px;padding:20px;margin:10px;box-shadow:0 5px 15pxrgba(0,0,0,0.2);transition:transform 0.3s ease;}.prize-card:hover{transform:translateY(-5px);}@media(max-width:640px){.wheel-container{width:300px;height:300px;}.wheel-center{width:60px;height:60px;font-size:14px;}}</style></head><bodyclass="bg-gradient-to-br from-purple-900 via-blue-900 to-indigo-900 min-h-screen"><divclass="container mx-auto px-4 py-8"><!-- 标题区域 --><divclass="text-center mb-8"><h1class="text-4xl md:text-6xl font-bold text-white mb-4 bg-gradient-to-r from-yellow-400 to-orange-500 bg-clip-text text-transparent"><iclass="fas fa-gift mr-3"></i>幸运转盘抽奖</h1><pclass="text-xl text-gray-300">转动转盘,赢取丰厚奖品!</p></div><!-- 抽奖区域 --><divclass="flex flex-col lg:flex-row items-center justify-center gap-8"><!-- 转盘 --><divclass="wheel-container"><divclass="wheel-pointer"></div><divid="wheel"class="wheel"><!-- 转盘扇形将通过JavaScript动态生成 --></div><divid="spinButton"class="wheel-center"><divclass="text-center"><iclass="fas fa-play mb-1"></i><div>开始</div></div></div></div><!-- 奖品列表 --><divclass="bg-white/10 backdrop-blur-sm rounded-2xl p-6 shadow-2xl"><h3class="text-2xl font-bold text-white mb-4 text-center"><iclass="fas fa-trophy mr-2"></i>奖品列表</h3><divid="prizeList"class="space-y-3"><!-- 奖品列表将通过JavaScript动态生成 --></div></div></div><!-- 抽奖结果 --><divid="resultModal"class="fixed inset-0 bg-black/50 backdrop-blur-sm hidden items-center justify-center z-50"><divclass="bg-white rounded-2xl p-8 max-w-md mx-4 text-center shadow-2xl"><divid="resultIcon"class="text-6xl mb-4"></div><h2id="resultTitle"class="text-2xl font-bold mb-4"></h2><pid="resultMessage"class="text-gray-600 mb-4"></p><buttononclick="closeResult()"class="bg-gradient-to-r from-purple-600 to-blue-600 text-white px-6 py-3 rounded-lg font-semibold hover:from-purple-700 hover:to-blue-700 transition-all duration-300">继续抽奖</button></div></div><!-- 抽奖记录 --><divclass="mt-8 bg-white/10 backdrop-blur-sm rounded-2xl p-6 shadow-2xl"><h3class="text-2xl font-bold text-white mb-4 text-center"><iclass="fas fa-history mr-2"></i>抽奖记录</h3><divid="historyList"class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"><pclass="text-gray-300 text-center col-span-full">暂无抽奖记录</p></div></div></div><script>// 奖品配置constprizes=[{name:"一等奖",color:"#ef4444",icon:"🎁",probability:0.05},{name:"二等奖",color:"#f59e0b",icon:"🎁",probability:0.1},{name:"三等奖",color:"#10b981",icon:"🎁",probability:0.15},{name:"四等奖",color:"#3b82f6",icon:"🎁",probability:0.2},{name:"五等奖",color:"#8b5cf6",icon:"🎁",probability:0.25},{name:"谢谢参与",color:"#6b7280",icon:"😊",probability:0.25}];letisSpinning=false;lethistory=[];// 初始化转盘functioninitWheel(){constwheel=document.getElementById('wheel');constsegmentAngle=360/prizes.length;prizes.forEach((prize,index)=>{constsegment=document.createElement('div');segment.className='wheel-segment';segment.style.background=prize.color;segment.style.transform=`rotate(${index*segmentAngle}deg)`;segment.style.clipPath=`polygon(0 0, 100% 0, 50% 100%)`;constcontent=document.createElement('div');content.style.transform=`rotate(${segmentAngle/2}deg)`;content.innerHTML=`<div class="text-center"> <div class="text-2xl mb-1">${prize.icon}</div> <div class="text-sm">${prize.name}</div> </div>`;segment.appendChild(content);wheel.appendChild(segment);});}// 初始化奖品列表functioninitPrizeList(){constprizeList=document.getElementById('prizeList');prizes.forEach(prize=>{constprizeCard=document.createElement('div');prizeCard.className='prize-card';prizeCard.innerHTML=`<div class="flex items-center justify-between"> <div class="flex items-center"> <span class="text-2xl mr-3">${prize.icon}</span> <span class="font-semibold">${prize.name}</span> </div> <span class="text-sm opacity-75">${(prize.probability*100).toFixed(0)}%</span> </div>`;prizeList.appendChild(prizeCard);});}// 抽奖逻辑functionspinWheel(){if(isSpinning)return;isSpinning=true;constspinButton=document.getElementById('spinButton');spinButton.classList.add('spinning');// 随机选择奖品constrandom=Math.random();letcumulativeProbability=0;letselectedPrize=prizes[prizes.length-1];letselectedIndex=prizes.length-1;for(leti=0;i<prizes.length;i++){cumulativeProbability+=prizes[i].probability;if(random<=cumulativeProbability){selectedPrize=prizes[i];selectedIndex=i;break;}}// 计算旋转角度constsegmentAngle=360/prizes.length;consttargetAngle=selectedIndex*segmentAngle+segmentAngle/2;constspins=5+Math.random()*3;// 5-8圈constfinalAngle=spins*360+(360-targetAngle);// 旋转转盘constwheel=document.getElementById('wheel');wheel.style.transform=`rotate(${finalAngle}deg)`;// 显示结果setTimeout(()=>{showResult(selectedPrize);addToHistory(selectedPrize);isSpinning=false;spinButton.classList.remove('spinning');},4000);}// 显示抽奖结果functionshowResult(prize){constmodal=document.getElementById('resultModal');consticon=document.getElementById('resultIcon');consttitle=document.getElementById('resultTitle');constmessage=document.getElementById('resultMessage');icon.textContent=prize.icon;title.textContent=prize.name;if(prize.name==='谢谢参与'){message.textContent='很遗憾,这次没有中奖,再接再厉!';}else{message.textContent=`恭喜您获得${prize.name}!请联系客服领取奖品。`;}modal.classList.remove('hidden');modal.classList.add('flex');}// 关闭结果弹窗functioncloseResult(){constmodal=document.getElementById('resultModal');modal.classList.add('hidden');modal.classList.remove('flex');}// 添加到历史记录functionaddToHistory(prize){constnow=newDate();consttimeStr=now.toLocaleString('zh-CN');history.unshift({prize:prize.name,icon:prize.icon,time:timeStr});// 只保留最近10条记录if(history.length>10){history=history.slice(0,10);}updateHistoryDisplay();}// 更新历史记录显示functionupdateHistoryDisplay(){consthistoryList=document.getElementById('historyList');if(history.length===0){historyList.innerHTML='<p class="text-gray-300 text-center col-span-full">暂无抽奖记录</p>';return;}historyList.innerHTML=history.map(record=>`<div class="bg-white/20 backdrop-blur-sm rounded-lg p-4 text-white"> <div class="flex items-center justify-between"> <div class="flex items-center"> <span class="text-xl mr-2">${record.icon}</span> <span class="font-semibold">${record.prize}</span> </div> <span class="text-sm opacity-75">${record.time}</span> </div> </div>`).join('');}// 事件监听document.getElementById('spinButton').addEventListener('click',spinWheel);// 点击模态框外部关闭document.getElementById('resultModal').addEventListener('click',function(e){if(e.target===this){closeResult();}});// 初始化document.addEventListener('DOMContentLoaded',function(){initWheel();initPrizeList();});</script></body></html>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 3:48:54

基于PLC的污水处理控制系统博图HMI组态仿真生活污水工业污水处理

详见主页个人简介获取博图仿真HMI源文件PLC程序电气接线图IO表系统整体设计思路 该控制系统以西门子S7-200系列PLC作为核心控制器&#xff0c;围绕SBR&#xff08;序批式活性污泥法&#xff09; 工艺进行设计。系统按照“进水、反应、沉淀、排水、闲置”五个阶段实现全自动周期…

作者头像 李华
网站建设 2026/4/18 3:50:44

经典算法题型之复数乘法(二)

解决方案方法&#xff1a;简单解法算法两个复数的乘法可以依下述方法完成&#xff1a;然后&#xff0c;将提取的部分转换为整数后&#xff0c;根据需要将实部和虚部相乘。然后&#xff0c;我们再次以所需的格式形成返回字符串&#xff0c;并返回结果。​Java 实现public class …

作者头像 李华
网站建设 2026/4/17 12:33:32

20、应用盈利与上架Windows应用商店全攻略

应用盈利与上架Windows应用商店全攻略 在应用开发的过程中,实现盈利和将应用成功上架应用商店是两个关键的环节。下面将详细介绍应用盈利的方法以及将应用提交到Windows应用商店的具体步骤。 应用盈利的要点 微软应用商店的试用模式 :微软Windows应用商店支持将付费应用以…

作者头像 李华
网站建设 2026/4/18 3:50:36

【课程设计/毕业设计】基于SpringBoot的闲置物品循环交易保障系统的设计与实现闲置商品发布与交易【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/18 7:42:27

论文写作必备神器:7款AI工具实测,30分钟生成1万字真实参考文献

还在为堆积如山的文献和空洞的提纲而彻夜难眠吗&#xff1f;面对导师“再改一版”的邮件感到绝望&#xff1f;你的学术生涯需要一次彻底的效率革命。今天&#xff0c;我们将为你揭晓经过深度实测的7款AI论文写作神器终极清单&#xff0c;直接锁定最高效的“黄金组合”。我们的核…

作者头像 李华
网站建设 2026/4/18 7:56:59

AI开发者的“救命稻草“:RAG、知识库和Embedding,让大模型无所不知!

今年以来&#xff0c;AI 技术已经融入了我们的工作和生活中。我们通过 AI 问答逐渐取代了之前传统的搜索&#xff0c;有了 AI 的加持&#xff0c;我们的工作效率和生活便捷度确实提高了不少。今天&#xff0c;我们就一起来了解下 AI 技术中 RAG、知识库和 Embedding 这三门技术…

作者头像 李华