前端随机抽奖效果

news/2024/12/23 7:41:06/

功能描述

开始随机、标签收取、重置布局、标签收取后添加标记、删除标记、复原标记、重置布局
可以通过此功能实现随机点名、抽奖功能

效果截图

在这里插入图片描述

实现所用技术

vscode编写工具htmlcssjquery

以下为效果代码

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title></title><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script><style type="">*{margin:0;padding:0;}#btn-group{text-align: center;width: 1000px;padding: 20px;}#btn-group p{padding: 4px 20px;font-size: 16px;display: inline-block;margin-right: 20px;color: #fff;border: 1px solid #7190c7;background: #7190c7;transition: 0.3s;cursor: pointer;}#btn-group p:hover{color: #fff;background: #eaa6a3;border-color: transparent;}ul{width:1000px;margin:0 0 0 20px;padding: 10px 20px 30px;border: 2px solid #f1ccb8;display: flex;flex-wrap: wrap;justify-content: space-between;background: #ffd;}ul li{list-style: none;width: 100px;height: 40px;font-size: 23px;text-align: center;line-height: 40px;color: #f1f1f1;background: #3499ad;margin: 10px;box-sizing: border-box;position: relative;transition: 0.3s;}li:hover{border-radius: 0;/* background: #8094ff; */box-shadow: 0 0 13px 2px white inset;}.span1,.span2{display:inline-block;width:30px;height:20px;margin:0 3px;background:#2BF371;border-radius:20px 0 20px 0;box-shadow: 0 0 8px 1px #04ff00;transform: rotate(-20deg);}u.mark{color: red;border: 1px solid red;transform: rotate(-36deg);font-size: 12px;position: absolute;padding: 4px 6px;line-height: 12px;text-shadow: 0 0 0 transparent;}u.mark.new{color:#fff;border-color:#fff;left:-3px;background:#000;}/* 收取标签后-标签放大效果 */.active-max{width:980px;height:400px;font-size:100px;line-height:200px;transition:0.4s;text-shadow: 0 0 18px #f6ff67;cursor: pointer;}</style>
</head>
<body><div id="btn-group"><p id="startBtn">开始抽取标签</p><p id="getNumBtn">收取标签</p><p id="removeMark">删除标记</p><p id="goMark">还原标记</p><p id="resetBtn">重置布局</p></div><!-- 点名列表 --><ul></ul>
</body>
<script>// 标签选中色const activeColor = '#ff4040'// 移除收取标签后的叶子图案function removeLeaf(){$('.span1,.span2').remove()/*删除小叶子*/}// 生成点名列表var liList = Array(40).fill(null)liList.map((item, index)=>{$(`<li>${index+1}</li>`).appendTo('ul')})var arr = $('li')var timervar num = 0var isStart = false//防止开始、结束按钮连点var stor = []//存放标记的存储器$('#startBtn').on('click',function(){$('li').off('click')$('u').css({top:5,left:0})removeLeaf()arr.eq(num).removeClass('active-max').siblings().css({display:'block'})/*被收取的标签恢复原样*/if(!isStart){isStart = truetimer = setInterval(function(){num = parseInt(Math.random()*arr.length)arr.eq(num).css('background', activeColor).siblings('li').css('background','#3499ad')},100)}})$('#resetBtn').on('click',function(){isStart = falsestor = []$('u').remove()$('li').off('click')$('u').css({top:5,left:0})clearInterval(timer)removeLeaf()arr.eq(num).removeClass('active-max').siblings().css({display:'block'})/*抽取的元素恢复原样*/arr.eq(num).css('background','#3499ad')})$('#getNumBtn').on('click',function(){if(isStart){isStart = falseclearInterval(timer)// 给抽取的标签插入小样式arr.eq(num).addClass('active-max').css('background','#c28164').prepend('<span class="span1"></span>').append('<span class="span2"></span>').siblings().css({display:'none'})// 收取的数字点击可以添加标记效果arr.eq(num).click(function(e){var x=e.offsetXvar y=e.offsetY$(this).children('u').remove()$(this).append('<u class="mark">标记</u>').children('u').css({top:y,left:x})stor.push($(this).index())})}})$('#removeMark').click(function(){$('u').remove()})$('#goMark').click(function(){$.each(stor,function(index,item){$('li').eq(item).children('u').remove().end().append('<u class="mark new">标记</u>')})})
</script>
</html>

http://www.ppmy.cn/news/119523.html

相关文章

数据结构与算法08:二分查找和哈希算法

目录 【二分查找】 二分查找的特殊情况 【哈希算法】 应用一&#xff1a;安全加密 应用二&#xff1a;唯一标识 应用三&#xff1a;数据校验 应用四&#xff1a;散列函数 应用五&#xff1a;负载均衡 应用六&#xff1a;数据分片 应用七&#xff1a;分布式存储&…

用 JavaScript 对抗 DDOS 攻击 (下)

抗 v2 之前的那些奇技淫巧&#xff0c;纯属娱乐而已&#xff0c;并不能撑多久。 但简单、好玩&#xff0c;似乎这正是对抗的乐趣。之前从未想过&#xff0c;居然还能把脚本黑科技&#xff0c;用在网络防御上。 于是&#xff0c;又陆陆续续对抗了一段时间。 直到兴致淡却&am…

第十七章行为性模式—状态模式

文章目录 状态模式解决的问题反例 结构实例存在的问题使用场景 状态模式与策略模式的区别 行为型模式用于描述程序在运行时复杂的流程控制&#xff0c;即描述多个类或对象之间怎样相互协作共同完成单个对象无法单独完成的任务&#xff0c;它涉及算法与对象间职责的分配。行为型…

喷墨打印机连续纸彩色实时绘图方法

喷墨打印机连续纸彩色实时绘图&#xff24;&#xff2f;&#xff33;时代并不是什么新鲜事&#xff0c;&#xff28;&#xff30; &#xff54;&#xff48;&#xff49;&#xff4e;&#xff4b;&#xff4a;&#xff45;&#xff54;做这事儿很方便&#xff0c;后来&#xf…

HP Designjet T1100 - 面板提示打印头更换未完成故障排除

问题 本文对HP Designjet T1100面板显示“打印头更换未完成”故障排除。 解决方案 Designjet T1100面板提示“打印头更换未完成”&#xff0c;按提示重新安装所有打印头&#xff0c;确认所有打印头都可以正确识别&#xff0c;但检测打印头时&#xff0c;显示“正在取消打印头更…

打印时,CAD图纸白边边框如何去除?

打印时&#xff0c;CAD图纸白边边框如何去除&#xff1f;当我们设计完图纸&#xff0c;打印预览时发现图形周围有白边&#xff0c;想要去除该如何操作呢&#xff1f;其实很简单&#xff0c;我们只需要对图纸边框进行设置就可以啦。 1、运行CAD制图软件打开需要打印的图纸。这里…

惠普HP DesignJet Z2100 打印机驱动

惠普HP DesignJet Z2100 打印机驱动是官方提供的一款打印机驱动&#xff0c;本站收集提供高速下载&#xff0c;用于解决打印机与电脑连接不了&#xff0c;无法正常使用的问题&#xff0c;本动适用于&#xff1a;Windows XP / Windows 7 / Windows 8 / Windows 10 32/64位操作系…

惠普服务器开机显示器没反应 主机一直跟响,惠普电脑开不了机,一直发出‘滴 滴 滴 滴’的响声是怎么回事...

出现您所述的“滴滴滴的声音”一般是机器的硬件报警声&#xff0c;出现这个声音一般和机器硬件出现故障有关。 建议您可以尝试按下面的方法解决您遇到的问题&#xff1a; 拔去机器外接及加装的硬件设备排除硬件方面的影响。 重新插拔下机器的内存及硬盘。 做静置操作&#xff1…