当前位置:首页 > JavaScript

js实现点名

2026-03-01 01:56:45JavaScript

实现随机点名功能

使用JavaScript可以轻松实现随机点名功能。以下是几种实现方式:

基础实现方法

const names = ['张三', '李四', '王五', '赵六'];
const randomIndex = Math.floor(Math.random() * names.length);
console.log(`被点到的是: ${names[randomIndex]}`);

带动画效果的实现

<div id="nameDisplay">准备开始</div>
<button onclick="startRoll()">开始点名</button>
<button onclick="stopRoll()">停止</button>

<script>
let rollInterval;
const names = ['张三', '李四', '王五', '赵六'];

function startRoll() {
  clearInterval(rollInterval);
  rollInterval = setInterval(() => {
    const randomIndex = Math.floor(Math.random() * names.length);
    document.getElementById('nameDisplay').textContent = names[randomIndex];
  }, 100);
}

function stopRoll() {
  clearInterval(rollInterval);
}
</script>

进阶实现(带音效和排除已点名人选)

js实现点名

let selectedNames = [];
const allNames = ['张三', '李四', '王五', '赵六'];

function getRandomName() {
  if(selectedNames.length === allNames.length) {
    alert('所有人已点完');
    return;
  }

  let availableNames = allNames.filter(name => !selectedNames.includes(name));
  const randomIndex = Math.floor(Math.random() * availableNames.length);
  const selected = availableNames[randomIndex];

  selectedNames.push(selected);
  document.getElementById('result').innerHTML = `被点到的是: ${selected}`;
  new Audio('notification.mp3').play();
}

实现要点说明

  • 使用Math.random()生成随机数,配合数组长度获取随机索引
  • 动画效果通过setInterval实现快速切换显示
  • 排除已选功能通过数组过滤实现
  • 可添加音效增强用户体验

扩展功能建议

  1. 添加名单导入功能,支持从文件读取姓名列表
  2. 实现分组点名功能
  3. 添加历史记录功能,记录已点名人选
  4. 增加点名次数统计功能
  5. 实现可视化效果,如转盘动画

这些实现方式可以根据具体需求进行调整和扩展,核心逻辑都是通过随机数选择数组元素来实现点名功能。

标签: js
分享给朋友:

相关文章

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取所有…