当前位置:首页 > JavaScript

js实现连打

2026-03-15 10:06:45JavaScript

实现连打功能的基本思路

连打功能通常指在短时间内快速重复触发某个动作,例如游戏中的连续攻击或快速输入。JavaScript可以通过监听键盘或鼠标事件,结合计时器实现这一效果。

监听按键事件

通过addEventListener监听键盘的keydownkeyup事件,记录按键状态:

js实现连打

let isKeyPressed = false;
document.addEventListener('keydown', (e) => {
  if (e.code === 'Space' && !isKeyPressed) { // 以空格键为例
    isKeyPressed = true;
    startContinuousAction();
  }
});

document.addEventListener('keyup', (e) => {
  if (e.code === 'Space') {
    isKeyPressed = false;
    stopContinuousAction();
  }
});

定时触发动作

使用setInterval实现重复触发动作,通过clearInterval停止:

js实现连打

let actionInterval;
function startContinuousAction() {
  actionInterval = setInterval(() => {
    performAction(); // 需要重复执行的动作
  }, 100); // 间隔时间(毫秒)
}

function stopContinuousAction() {
  clearInterval(actionInterval);
}

function performAction() {
  console.log('Action triggered!'); // 替换为实际逻辑
}

优化防抖处理

为避免首次触发延迟,可立即执行一次动作后开始定时:

function startContinuousAction() {
  performAction(); // 立即执行一次
  actionInterval = setInterval(performAction, 100);
}

鼠标连点实现

类似逻辑适用于鼠标点击事件:

let mouseInterval;
document.getElementById('button').addEventListener('mousedown', () => {
  performAction();
  mouseInterval = setInterval(performAction, 100);
});

document.getElementById('button').addEventListener('mouseup', () => {
  clearInterval(mouseInterval);
});

完整示例代码

<button id="actionBtn">按住触发连打</button>
<script>
  const btn = document.getElementById('actionBtn');
  let interval;

  btn.addEventListener('mousedown', () => {
    triggerAction();
    interval = setInterval(triggerAction, 200);
  });

  btn.addEventListener('mouseup', () => {
    clearInterval(interval);
  });

  function triggerAction() {
    console.log('连打动作执行');
    // 实际业务逻辑...
  }
</script>

注意事项

  • 间隔时间根据需求调整,通常100-300ms较为合适
  • 移动端需要对应touchstarttouchend事件
  • 清除定时器时确保变量作用域正确
  • 性能敏感场景建议使用requestAnimationFrame

标签: 连打js
分享给朋友:

相关文章

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…

js 实现页面刷新

js 实现页面刷新

使用 location.reload() location.reload() 是原生 JavaScript 提供的页面刷新方法。调用该方法会重新加载当前页面,相当于点击浏览器的刷新按钮。 // 基本…

js实现排序

js实现排序

数组排序方法 JavaScript提供了内置的sort()方法用于数组排序。默认情况下,sort()将元素转换为字符串并按照Unicode码点排序。对于数字排序,需传入比较函数。 const num…