1 回答
TA贡献1839条经验 获得超15个赞
你是正确的轨道计算上width的的#current-time吧。在timeupdate侦听器之外对每个rangeor做同样的事情marker。
循环遍历每个position标记并计算left属性的偏移量,就像您对width属性所做的一样。这将为您提供时间线上每个标记的位置。
然后在循环中创建每个标记,为其指定left属性值并将它们添加到例如#seekbar.
// Video and seekbar
const video = document.getElementById('videoplayer');
const seekBar = document.getElementById('seekbar');
// Positions of markers in seconds.
const positions = [3, 6.5, 7];
// Set the markers when we CAN know the duration of the video.
video.addEventListener('loadedmetadata', () => {
// Add each marker to the #seekbar element.
positions.forEach(function(position) {
// Is position within range of the duration?
if (position <= video.duration) {
// Calculate position in percentage..
const left = (position / video.duration) * 100 + '%';
// ..create marker and give it the left value..
const marker = document.createElement('div');
marker.classList.add('bubles');
marker.style.left = left;
// ..and add the marker to the #seekbar.
seekBar.appendChild(marker);
}
});
});
这会将每个标记放置在时间轴上,并带有一个百分比值。在循环之后继续监听timeupdate事件。
如果您想合并Ranges,就像在您的示例中一样,则需要进行一些修改。但这将帮助你开始你想要去的地方。
添加回答
举报