JS实现的随机点名的模型

一个教育 SaaS 工具平台的技术全景:拾趣课堂 6 款工具的架构设计与产品逻辑 教育信息化解决方案通常面临两个矛盾:功能丰富 vs 使用简单,付费盈利 vs 教师预算。拾趣课堂是一个面向中小学及幼教教师的课堂工具平台,试图在这两个矛盾中找到平衡点。本文从教育 SaaS 工具平台的技术选型和课堂工具产品设计角度,拆解这个平台的 6 款工具。工具层各管各的表,平台层只存最少数据。每个工具有独立的数据模型和业务逻辑,通过关联到平台层的班级和学生。这种架构的优势:新工具可以独立开发,不影响已有工具。劣势:跨工具数据聚合需要额外处理。 阅读详情
先看看运行效果



再看源代码
  1. <!-- 
  2.   下面的代码是我做的我们班每次上课前的一个随机点名的简单模型
  3.   本人觉得写的不是很好 希望靠各位大侠的想象力和精湛的技术改进下 谢谢了
  4. -->
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head>
  8. <meta http-equiv="Content-Type" c />
  9. <title>幸运星 就是你</title>
  10. <style>
  11. td {
  12.         background-color: #FFFFFF;
  13.         border: 1px solid #009933;
  14.         font-size: 50pt;
  15.         height: 70px;
  16.         width: 75px;
  17.         text-align: center;
  18. }
  19. .button {
  20.         background-color: transparent;
  21.         border: 1px solid #009933;
  22.         font-size: 20pt;
  23.         color: #009933;
  24.         height: 40px;
  25.         width: 100px;
  26. }
  27. .sp {
  28.         background-color: #FFFFFF;
  29. }
  30. .total {
  31.         border: 1px solid #009933;
  32.         border-bottom: 1px solid #009933;
  33.         border-top: 0px;
  34.         border-left: 0px;
  35.         border-right: 0px;
  36.         background-color: transparent; /* 背景色透明 */
  37.         text-align: center;
  38.         font-size: 14px;
  39.         color: green;
  40.         width: 50px;
  41. }
  42. .f {
  43.         font-size: 14px;
  44.         color: #009933;
  45. }
  46. </style>
  47. <script type="text/javascript" language="javascript">
  48.   var tds = document.getElementsByTagName("td");//获得所有的td
  49.   var time;//每跳一格运行的时间 1-50ms之间
  50.   var count = 0;//每个td对应的下标
  51.   var totalTime;//每跳一格运行时间的总和
  52.   var maxTime;//maxTime是每次运行的最大时间 在1000到6000之间 随机的
  53.   var flag;//用来开始和停止的标识 1表示开始 0表示结束
  54.   
  55.   //开始
  56.   function begin()
  57.   {
  58.     flag = 1;
  59.     maxTime = Math.floor(Math.random()*3000) + Math.floor(Math.random()*2000) + 1000;
  60.     totalTime = 0;//每次运行时 将前一次运行的总时间 清零
  61.     changeColor();
  62.   }
  63.   
  64.   //结束
  65.   function end() 
  66.     {   
  67.         flag = 0;
  68.     } 
  69.   
  70.   function changeColor()
  71.   {   
  72.       time = Math.floor(Math.random()*50) + 1;//本行放在这里 则每次每格运行的时间是不一样的
  73.     if(count < tds.length)
  74.     { 
  75.       //下面这样写 主要是为了按1-16顺序选择 本人觉得不是很好 如果哪位大侠有更好的 欢迎指教
  76.       tds[count].style.color="#FF0DF0";
  77.       rollback(count);
  78.       if(count == 4)
  79.       {
  80.         count = 6;//输出6
  81.       } 
  82.       else if(count == 7)
  83.       {
  84.         rollback(count);
  85.         count = 8;//输出7
  86.       } 
  87.       else if(count == 9)
  88.       {
  89.         rollback(count);
  90.         count = 10;//输出8
  91.       } 
  92.       else if(count == 11)
  93.       {
  94.         rollback(count);
  95.         count = 15;//输出9
  96.       }
  97.       else if(count == 16)
  98.       {
  99.         rollback(count);
  100.         count = 14;//输出10
  101.       }
  102.       else if(count == 15)
  103.       {
  104.         rollback(count);
  105.         count = 13;//输出11
  106.       }
  107.       else if(count == 14)
  108.       {
  109.         rollback(count);
  110.         count = 12;//输出12
  111.       }
  112.       else if(count == 13)
  113.       {
  114.         rollback(count);
  115.         count = 11;//输出13
  116.       }
  117.       else if(count == 12)
  118.       {
  119.         rollback(count);
  120.         count = 9;//输出14
  121.       }
  122.       else if(count == 10)
  123.       {
  124.         rollback(count);
  125.         count = 7;//输出15
  126.       }
  127.       else if(count == 8)
  128.       {
  129.         rollback(count);
  130.         count = 4;//输出16
  131.       }
  132.       else if(count == 5)//当显示的是16时 转头重新从1开始显示
  133.       {
  134.         count = -1;
  135.       }
  136.     }
  137.     countcount = count + 1;    
  138.     
  139.     totalTimetotalTime = totalTime + time;//每次运行的时间累加
  140.     
  141.     if(totalTime < maxTime)//如果累计运行的时间小于maxTime 则继续运行 否则停止
  142.     {
  143.       if (flag == 0)   
  144.             {
  145.         return false;
  146.       }
  147.       setTimeout("changeColor()", time);        
  148.     }   
  149.   }
  150.   
  151.   //rollback方法是为了将不是当前的数字的颜色恢复为以前的颜色 以示区别
  152.   function rollback(s)
  153.   {
  154.     for(var i = 0; i < tds.length; i++)
  155.     {
  156.       if(i != s)
  157.       {
  158.         tds[i].style.color="#000000";
  159.       }
  160.     } 
  161.   }
  162. </script>
  163. </head>
  164. <body>
  165. <form name="luck">
  166. <table id="luckboy" border="0" align="center" cellpadding="0"
  167.   cellspacing="1" style="position: relative; left: 0px; top: 30px">
  168.   <tr>
  169.     <td>1</td>
  170.     <td>2</td>
  171.     <td>3</td>
  172.     <td>4</td>
  173.     <td>5</td>
  174.   </tr>
  175.   <tr>
  176.     <td>16</td>
  177.     <td colspan="3" rowspan="3" class="sp"><img
  178.       src="ImgE_250x250.png" align="middle" /><!-- 你的图片 --></td>
  179.     <td>6</td>
  180.   </tr>
  181.   <tr>
  182.     <td>15</td>
  183.     <td>7</td>
  184.   </tr>
  185.   <tr>
  186.     <td>14</td>
  187.     <td>8</td>
  188.   </tr>
  189.   <tr>
  190.     <td>13</td>
  191.     <td>12</td>
  192.     <td>11</td>
  193.     <td>10</td>
  194.     <td>9</td>
  195.   </tr>
  196. </table>
  197. <br />
  198. <br />
  199. <br />
  200. <div align="center"><input type=button name="start" value="开 始"
  201.   class="button" onclick=begin();> <input type=button
  202.   name="over" value="结 束" class="button" onclick=end();></div>
  203. </form>
  204. </body>
  205. </html>

Vue:使用Vue实现随机点名效果 使用Vue实现随机点名效果 阅读详情

相关推荐

事件监听实战:用JavaScript实现公平随机点名器

事件监听是现代前端交互的核心机制,它的背后是“订阅-通知”模型:用户点击按钮,浏览器广播事件,注册的处理函数被调用。addEventListener作为标准注册方式,支持多个监听器、可控事件阶段,优于传统onclick赋值。事件流包含捕获、目标、冒泡三个阶段,理解冒泡机制可以借助事件委托优化列表交互,配合event.target与closest实现动态名单的健壮绑定。在实际工程中,随机点名器是检验这些概念的理想场景:通过Fisher-Yates洗牌保证抽取公平性,利用防抖锁避免连点误触,再融汇键盘事件与指针

weixin_29016865的博客 289

随机点名模型

【代码】随机点名模型。

weixin_74155781的博客 553

VBA宏实现PPT随机点名系统:Excel与PPT联动自动化方案

在办公自动化和教学互动场景中,VBA(Visual Basic for Applications)作为经典的宏编程语言,通过深度集成Office套件实现跨应用自动化。其核心原理是利用对象模型操控Excel、PPT等组件,实现数据读取、界面控制和流程自动化。技术价值在于将重复性手动操作转化为高效、可定制的程序,显著提升课堂互动、会议主持等场景的参与感和专业性。应用场景广泛覆盖教育培训、企业会议、活动抽奖等需要随机点名或抽选的环节。本文聚焦于利用VBA宏构建一个可在PPT演示中直接调用的滚动式随机点名工具,通过

weixin_28712661的博客 291

零代码基础也能玩转AI!老师用DeepSeek三分钟打造趣味随机点名系统,课堂氛围UP!

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。生成成功啦,点击开始就可以开始随机点名,需要优化的地方可以继续跟Deepseek对话,比如:我希望界面更好看,我希望加上倒计时的功能等。

EnjoyEDU的博客 2107

VBA宏实现PPT随机点名系统:Excel/WPS表格自动化方案

在办公自动化和教学互动场景中,VBA(Visual Basic for Applications)作为经典的自动化脚本语言,通过操作Excel对象模型实现数据处理与界面控制。其核心原理是利用事件驱动和循环结构,结合Windows API函数,构建高效的用户交互流程。这项技术的价值在于将日常办公软件转化为灵活的自动化工具,无需依赖网络或第三方插件,特别适用于课堂点名、会议抽奖等需要随机选择与实时展示的场景。本文以VBA宏开发为例,深入解析如何通过DoEvents循环与Sleep延时控制,打造流畅的滚动式随机点

weixin_42531128的博客 301

Node.js实现的高效随机点名器设计与实现

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它使用事件驱动、非阻塞I/O模型,使得其非常适合处理大量并发数据流。Node.js 的这种设计允许开发者编写出快速、轻量级的网络应用,尤其适合于I/O密集型的应用,比如实时聊天应用、大规模分布式系统后端等。在本章中,我们深入了解了Express框架的基础知识,包括路由和中间件的使用,以及如何构建RESTful API。我们也探讨了如何处理数据和业务逻辑,以及如何提升应用的安全性和健壮性。

weixin_35750483的博客 625

随机点名的网页,支持用户上传包含姓名的文件,上传后,基于文件中的名字进行随机点名源码

【代码】随机点名的网页,支持用户上传包含姓名的文件,上传后,基于文件中的名字进行随机点名源码。

大新的博客 332

实现JavaScript随机点名器的完整教程

点击我

weixin_35749440的博客 888

JS——利用js实现简易点名系统

本文主要介绍的是如何利用JS实现简易点名系统的实现过程。

Bonsoir777的博客 1428

JavaScript实现随机点菜系统

JavaScript是由Netscape公司的Brendan Eich开发的,最初名为LiveScript,它首次出现在Netscape Navigator 2.0中。随着Java的兴起,为了与Java产生关联,它被重命名为JavaScript。尽管名称中包含“Java”,但JavaScript与Java没有直接的关联。JavaScript是一种解释型、基于原型的轻量级脚本语言,特别适用于Web开发。| 操作类型 | 方法 | 描述 || 访问节点 || 根据ID获取元素节点 |

weixin_30218749的博客 1141

基于JavaScript的升级版点名器系统实战项目

定义插件接口规范:onInit(context) {} // 初始化钩子onBeforeRoll(callList) {} // 点名前干预onAfterRoll(result) {} // 点名后处理} // 导出拦截注册机制示例:// 使用事件总线触发插件// 示例插件:自动记录日志console.log(`[Plugin] 已点名: ${result.name}, 时间: ${new Date().toISOString()}`);

weixin_35019679的博客 681

JavaScript实现简单随机点名

js实现简单随机点名

weixin_69761220的博客 3802

Excel/WPS宏实现随机点名:VBA原理、源码与兼容性指南

办公自动化场景中,随机抽取名单常面临公平性和可追溯性的双重挑战。通过Excel/WPS宏结合VBA编程,可以构建轻量级的随机点名方案:利用Range对象定位名单区域,借助Rnd函数生成随机行号,配合Randomize重置随机种子,实现每次点击都产生不可预测的抽取结果。结合Collection集合记录已抽中行号,可有效避免重复点名,并通过单元格标色和记录追加实现结果留痕。这类宏工具无需安装额外软件,名单修改灵活,特别适合课堂提问、会议抽签、培训暖场等场景。同时需注意文件保存为xlsm格式、WPS VBA支持库

weixin_30512965的博客 355

Web前端:JavaScript 随机点名系统案例详解

本文介绍了一个基于HTML/CSS/JavaScript的随机点名系统实现方案。该系统具备随机选择学生、动态改变背景颜色、全屏居中显示等功能。核心实现包含:1)使用数组存储学生名单;2)通过Math.random()生成随机数和RGBA颜色;3)采用Flexbox布局实现界面居中;4)添加点击事件处理逻辑。文章详细解析了随机数生成、颜色模型应用、DOM操作等关键技术点,并提供了完整的响应式设计代码,包含动画效果和键盘支持等增强功能。该案例展示了基础Web技术的综合应用,适合作为前端开发学习参考。

2401_87008233的博客 1013

Python实战:用SkillMetrics库5分钟搞定泰勒图绘制(附完整代码)

本文详细介绍了如何使用Python的SkillMetrics库快速绘制专业泰勒图,以直观对比多个模型的预测性能。通过整合相关系数、标准差和中心化均方根误差三个核心指标,该工具能帮助数据科学家和研究者高效完成模型评估与可视化,提升分析报告质量。文章提供了从环境配置、数据准备到高级定制与子图对比的完整代码示例。

7z8x2c4v6b9的博客 371

ISO13849功能安全从入门到精通(3):安全功能及其对降低风险的贡献4

例如,如果机器必须在有限速度下运行时进行设置,那么在低加速度值下进行设置时,参数P1将是正确的选择:随着危险缓慢出现并给予足够的运动自由,操作员将能够移出危险区域。例如,在无故障的条件下,在操作者的手的方向移动的滚子不能陷住它。在所有其他情况下,F1是正确的选择,前提是危险暴露的持续时间不超过机器总操作时间的1/20。需求来源于必要的风险降低。由于这些考虑而降低的PLr在任何情况下都不得低于通过比较方式考虑的机器的PLr,因为并不能从事故发生率低和严重程度低得出实施的安全功能提供的安全水平高于要求。

wdconan001的博客 834

事件监听与随机点名:JavaScript实战实现随机点名工具

事件驱动是JavaScript的核心运行机制,理解事件监听原理是构建交互式Web应用的基础。通过addEventListener,开发者可以灵活绑定用户操作与页面响应,并利用冒泡与捕获机制实现事件委托,提升代码可维护性。随机点名工具是事件监听的典型应用场景,其实现不仅涉及DOM操作,更考验随机算法与状态管理:采用Fisher-Yates洗牌算法替代单纯Math.random,能获得更均匀的随机性;结合setInterval或requestAnimationFrame实现名字滚动视觉效果,再配合状态锁机制避免

weixin_34246826的博客 312

SAP Gateway 中事务码 /IWFND/MAINT_SERVICE 的用法介绍

本文系统梳理了SAP Gateway中/IWFND/MAINT_SERVICE事务码的核心功能与运维实践。作为OData服务管理中樞,它支持服务注册激活、ICF节点配置、系统别名绑定、批量处理等关键操作。文章详解了服务目录、ICF节点、系统别名的配置要点,提供了批量激活、缓存清理、性能监控等实用技巧,并针对常见陷阱(如传输配置、删除残留)给出解决方案。通过制造业批量激活、零售业OAuth集成等案例,展示了事务码在企业级应用中的实际价值,为SAP Gateway运维提供了一套完整的治理清单。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 302

用DOM树实现汇率转换表,注册页面,点名

文章目录1. 汇率转换表2. 注册页面()3. 点名 1. 汇率转换表 2. 注册页面() 下面是实现后 1, 实现注册页面: a,点击看不清换一张, 会切换图片 b,点击立即注册找好友, 会判断输入的验证码和当前图片代表的验证码是否一致 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>注册</t

AC_872767407的博客 498

PCL 点到面的ICP算法【2024最新版】

经典的点到面的ICP算法。博客长期更新,本文最新更新时间为:2024年10月18日。

点云侠的博客 36万+

moveit——基于octomap的碰撞检测

机械臂对棚顶进行碰撞检测。

如果想成为中心,那么就到中心去吧。 1355
上一篇: 最大子序列算法的JAVA实现
下一篇: 什么是"牛人",怎么成为"牛人"的讨论
老紫竹
博客等级 码龄19年 1万+粉丝 1252原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值