You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript自定义视频播放器中点击空格键控制视频播放/暂停且阻止页面滚动

解决空格键控制视频时页面滚动的问题

这个问题很典型——浏览器默认会把空格键当作“向下翻页”的指令,你的代码虽然实现了视频的播放/暂停切换,但没有阻止浏览器的默认行为,所以才会出现按下空格时视频状态改变的同时页面还会滚动的情况。

只需要在处理Space键的逻辑里添加一行代码,阻止浏览器的默认动作即可:

window.onkeydown = vidCtrl;
function vidCtrl(e){
 const vid = document.querySelector('video')
 const key = e.code;
 if (key === 'ArrowLeft') {
  vid.currentTime -= 5;
  if (vid.currentTime < 0) {
   vid.pause();
   vid.currentTime = 0;
  }
 } else if (key === 'ArrowRight') {
  vid.currentTime += 5;
  if (vid.currentTime > vid.duration) {
   vid.pause();
   vid.currentTime = 0;
  }
 } else if (key === 'Space') {
  // 阻止浏览器默认的滚动行为
  e.preventDefault();
  
  if (vid.paused || vid.ended) {
   vid.play();
  } else {
   vid.pause();
  }
 }
}

补充优化建议

如果页面可能存在没有视频元素的情况,建议先判断视频是否存在,避免影响正常的空格滚动功能:

else if (key === 'Space') {
  // 如果未找到视频元素,直接返回,保留默认行为
  if (!vid) return;
  
  e.preventDefault();
  if (vid.paused || vid.ended) {
   vid.play();
  } else {
   vid.pause();
  }
 }

这样修改后,按下空格键就只会控制视频的播放/暂停,页面不会再触发滚动了。

内容的提问来源于stack exchange,提问作者Soliman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 09:32:32