사용자 정의 컨트롤 막대가있는 HTML 비디오 태그가 있습니다. 사용자가 범위를 스크럽하면 검색 막대와 볼륨 막대 모두 실시간으로 값을 업데이트하고 싶습니다. 현재 사용자가 클릭 및 드래그하는 동안이 아니라 슬라이더를 조정 한 후에 볼륨이 업데이트됩니다. 나는 처음부터이 작업을 수행하고 사용하지 할슬라이더 값을 실시간으로 업데이트하려면 어떻게해야합니까?
// Change current viewing time when scrubbing through the progress bar
seekBar.addEventListener('change', function() {
// Calculate the new time
var time = video.duration * (seekBar.value/100);
// Update the video time
video.currentTime = time;
});
// Update the seek bar as the video plays
video.addEventListener('timeupdate', function() {
// Calculate the slider value
var value = (100/video.duration) * video.currentTime;
// Update the slider value
seekBar.value = value;
});
// Pause the video when the seek handle is being dragged
seekBar.addEventListener('mousedown', function() {
video.pause();
});
// Play the video when the seek handle is dropped
seekBar.addEventListener('mouseup', function() {
video.play();
});
// Adjust video volume when scrubbing through the volume bar
volumeBar.addEventListener('change', function() {
// Update the video volume
video.volume = volumeBar.value;
});
: 나는 그들과 같이 엮은이
<div id="video-controls">
// ...
<input type="range" id="seek-bar" value="0">
<input type="range" id="volume-bar" min="0" max="1" step="0.01" value="1">
// ...
</div>
을 그리고 내 자바 스크립트 : HTML에서
나는 그들과 같은 설정이 jQuery와 같은 자바 스크립트 라이브러리는 이미 해당 라이브러리에 대해 수행되었다는 것을 알고 있습니다. 필자가 본 솔루션의 대부분은 jQuery와 관련되어 있지만 사용하고 싶지 않습니다. 이는 jQuery에 대한 종속성을 줄이고 내 목표를보다 잘 제어 할 수있게하며 주로 학습 경험으로 활용합니다.
'mousemove'을 사용해 보셨습니까? – SparoHawk
[jsfiddle] (http://jsfiddle.net/)을 사용하여 간단한 예제를 만들 수 있습니까? 귀하의 질문이 명확하지 않다는 것은 아닙니다. 실용적인 데모를 갖는 것이 좋을 것입니다. –
@ SparoHawk 감사합니다. 귀사의 솔루션이 해당 볼륨에 적용되었습니다. 내가 비디오 위에 마우스를 올려 놓을 때마다 비디오가 일시 정지되기 때문에 비디오를 진행하려고 할 때 탐색 바를위한 것이 아닙니다. 스크러빙 할 때 재생/일시 정지 기능을 제거하려고했지만 작동하지 않았습니다. – Ushinro