如何用 event.timeStamp 计算两次点击操作之间的时间间隔
如何用 event.timeStamp 计算两次点击操作之间的时间间隔

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
想精确计算两次点击之间的时间差?直接用 event.timeStamp 确实是个可行的办法。不过,这里有个关键点需要先拎清楚:它返回的可不是我们通常理解的绝对时间,而是相对于页面加载完成那一刻(也就是 na vigationStart)的时间戳,单位是毫秒。所以,它和 Date.now() 不是一回事。但话说回来,只要两次点击事件都发生在同一个页面生命周期内,那么用后一个时间戳减去前一个,得到的差值就是精确的毫秒级间隔,这一点完全没问题。
获取并保存第一次点击的时间戳
思路很直接:监听页面的点击事件,当第一次点击发生时,把当时的 event.timeStamp 值给存起来。通常,我们会用一个变量或者闭包来保存这个“起点”。
let firstClickTime = null;
document.addEventListener('click', function(event) {
if (firstClickTime === null) {
firstClickTime = event.timeStamp;
console.log('第一次点击:', firstClickTime);
}
});
第二次点击时计算时间差
当第二次点击到来时,事情就简单了。读取这次事件的 event.timeStamp,然后减去之前存好的那个“第一次”的时间,结果就是两次点击的间隔。计算完成后,别忘了可以根据需要重置状态,以便开始下一轮的测量。
document.addEventListener('click', function(event) {
if (firstClickTime === null) {
firstClickTime = event.timeStamp;
} else {
const interval = event.timeStamp - firstClickTime;
console.log('两次点击间隔:', interval, 'ms');
// 重置以便下一轮测量(可选)
firstClickTime = null;
}
});
注意兼容性与精度细节
方法虽好,但有些细节不注意就容易踩坑。下面这几点,算是行业里的共识了:
- 兼容性:
event.timeStamp在现代浏览器中都没问题,但老旧的 IE 8 及以下版本不支持(会返回 0)。如果项目需要兼容这些环境,稳妥起见,还是用Date.now()来替代吧。 - 精度:这个值的精度通常是毫秒级。有些浏览器,比如 Chrome,在启用高精度定时器的情况下,甚至能提供微秒级的精度。不过,考虑到人手点击操作本身就有大约100到300毫秒的反应延迟,咱们其实没必要过分纠结亚毫秒级别的差异。
- 最重要的一条:千万不要把
event.timeStamp和Date.now()混在一起直接相减。因为两者的时间基准根本不同,这样算出来的结果没有任何意义。
扩展:连续多次点击的间隔检测
如果想做的不是简单的两次点击间隔,而是检测“双击”或者“三连击”这种连续操作,光靠两次时间差就不太够了。更常见的做法是,配合一个时间窗口(比如1秒)来控制。下面这个例子,就是用数组记录一段时间内的点击时间,然后判断最近两次点击是否足够快,从而识别出双击行为。
let clickTimes = [];
document.addEventListener('click', function(event) {
const now = event.timeStamp;
clickTimes.push(now);
// 只保留最近 1 秒内的点击记录,避免数组无限增长
const cutoff = now - 1000;
clickTimes = clickTimes.filter(t => t > cutoff);
if (clickTimes.length >= 2) {
const lastTwo = clickTimes.slice(-2);
const diff = lastTwo[1] - lastTwo[0];
if (diff < 300) { // 假设300毫秒内算双击
console.log('检测到双击(间隔', diff, 'ms)');
}
}
}); 相关攻略
每到新环境,一份得体的自我介绍往往是开启人际交往的第一扇门。下面这份“2026年新生入学自我介绍”灵感合集,旨在为即将步入新阶段的你提供实用参考与创意启发。 2026年新生入学自我介绍【一】 尊敬的老师,亲爱的同学们: 大家好。关于“懂事”这个词,我记忆中最深刻的一次体验,发生在我四岁那年。 那时,
2026级大学新生自我介绍范文【一】 大家好,我是来自XX高中的XX。如果学科也有性格,我想我与文学最为投契。相较于理科世界中严谨的公式与抽象的几何,文学世界里流淌的人文气息与思想深度,总能更深地触动我的内心。在独处的时光里,与一本好书为伴是最惬意的事。沉浸于经典著作所构建的广阔世界,品味字里行间浓
我的家乡非常美丽 说起美丽的海滨城市大连,那就是我的家乡。这片土地上有不少值得一游的好去处,童牛岭便是其中之一。 山顶的奇观与自然的交响 童牛岭的山顶上,矗立着一尊独特的雕塑——一头长着翅膀的牛,一个孩童正骑在牛背上。每当雨滴落下,打在茂密的树叶上,便会发出清脆的“叭叭”声,仿佛一场自然的交响乐。
采访秋天 作为一名小记者,我的任务是去采访秋天。我的第一个问题很直接:“秋天,你的信纸在哪里?” 秋天的回答带着一丝慷慨:“我的信纸可不少,枫叶、荷叶……都是现成的。”这引出了我的下一个疑问:“那你们怎么送信呢?总不可能塞进我们街边的邮箱里吧?” “当然不是,”秋天笑了,“我有一位专属的邮差——风伯
为什么今天又是老师帮我们夹菜 唉,今天又是老师亲自帮我们夹菜。不管吃不吃得下,碗里的饭菜都必须吃完。要是谁自己动手夹得太少,老师立马会给你再加一倍——只因为全班都要参加拔河比赛。那段时间,体力上被操练得死去活来不说,连吃饭这件事,老师也不敢有丝毫轻忽,生怕我们体力不继,硬是逼着大家多吃一点。心里很想
热门专题
热门推荐
元旦一日游:在科技与自然的交汇处漫步 新年的钟声犹在耳畔,2026年的第一个假日便已翩然而至。空气中弥漫着喜庆与松弛的气息,我也决定暂别日常的节奏,加入这人潮涌动的假日行列,来一场计划之外的短途游览。 中午时分,目的地准时抵达。眼前是人头攒动的热闹景象,那份跃跃欲试的心情几乎要破笼而出。不过,一切还
今天元旦 元旦这天,大概是孩子们最快乐的时刻了。你听,大清早的鞭炮声就此起彼伏,宣告着新年的到来。一句“新年快乐”,是这一天最自然而然的开场白。 说到新年,怎么能少得了饺子呢?这几乎是家家户户的保留节目。一家人早早地忙活起来:爸爸负责擀皮,妈妈和我负责包。分工明确,配合默契,不一会儿,一排排白胖胖的
又是一个阳光明媚、万&里无云的好天气 处处弥漫着一股喜气洋洋的气氛,偶尔会有一丝丝凉风拂过脸上抑制不住的笑容。你知道吗?全校师生正齐聚一堂,准备欢庆元旦呢! 活动伊始,场内还有些许嘈杂的声响,但随着几位英姿飒爽的主持人登场,现场顷刻间鸦雀无声,所有人的目光都聚焦在舞台上,专心致志地等待节目开始。 精
光阴似箭,一转眼2026就要和我们说再见了 在年末的最后一天,我们学校举办了一场气氛热烈的运动会,为这一年画上了一个充满活力的句号。 比赛开始了 各项赛事紧锣密鼓地展开,同学们个个摩拳擦掌,做好了充分的赛前准备。首先登场的是我个人最喜欢也最拿手的项目——跳绳。裁判员的口哨声清脆响起,我手中的绳子便立
践行核心价值观演讲稿 本站为您整理了一系列关于践行社会主义核心价值观的演讲稿,供您参考。更多相关文章,敬请关注本栏目。 【践行核心价值观演讲稿(一)】 尊敬的老师,亲爱的同学们: 大家好。我是来自第四小学五(1)班的钟李敏。今天,我想和大家分享的主题是《弘扬核心价值观,争当苏区好少年》。 还记得每天





