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

如何让自定义音频seek bar支持点击跳转至对应播放进度位置

自定义音频进度条点击跳转实现方案

修改步骤

1. 调整CSS样式

给进度条外层容器增加相对定位和点击光标提示,删除无效的flex: ;属性:

.p-bar{
    position: relative;
    width: 25%;
    height: 4px;
    background: #333333;
    cursor: pointer;
}
.progress1 {    
  height:3px;
  background: whitesmoke;
  transition: width .1s linear;
  left: 0;
  box-shadow: 1px 1px 2px  white;
}

2. 新增点击跳转JS逻辑

在原有JS代码末尾追加如下代码即可实现点击跳转功能:

const progressBar = document.querySelector('.p-bar');
progressBar.addEventListener('click', function(e) {
  // 音频未加载完成时直接返回,避免报错
  if (isNaN(audio.duration)) return;
  // 计算点击位置占进度条总宽度的比例
  const clickPercent = e.offsetX / this.offsetWidth;
  // 跳转音频到对应时间点
  audio.currentTime = audio.duration * clickPercent;
  // 如需点击后自动播放,取消注释下面两行即可
  // if (audio.paused) {
  //   audio.play();
  // }
});

实现说明

  • 点击进度条时通过offsetX获取点击位置距离进度条左边缘的距离,除以进度条总宽度得到对应播放进度比例
  • 用音频总时长乘以进度比例得到目标播放时间,直接赋值给音频元素的currentTime属性即可完成跳转
  • 原有进度条同步逻辑无需修改,跳转后会自动触发进度条宽度更新

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:15:06