【发布时间】:2020-10-25 10:49:32
【问题描述】:
我有一个音频播放器和一个进度条。我让用户点击进度条。当他们单击该栏时,它会推进音频播放器。用户单击进度条的位置是音频播放器应该开始的位置。这是我的代码。 因此,如果用户点击进度条中 80% 的位置,音频播放器应该距离歌曲播放完毕还有 20%。
var aud = $('audio')[0];
$('.progress-bar-wrapper').on('click', (e) => {
var posX = e.pageX - $(this).offset().left;
var percentage = parseInt((posX / $(this).width()) * 100);
aud.currentTime = percentage/100 * aud.duration;
$('.progress:eq(' + index + ')').css('width', percentage + '%');
});
很遗憾,这并不准确。当我单击进度条中的 80% 位置时,它不会将音频播放器移动到 80% 的持续时间。我该怎么办?
【问题讨论】:
-
获取窗口宽度和进度条宽度。归一化,你就会得到准确的值。
-
这与我目前正在做的@MarkusZeller 有什么不同?
-
没有标准化。如果将窗口宽度设为 100%,则可以将 x 位置准确映射到进度条。
标签: javascript jquery