Spaces:
Running
Running
Update index.html
Browse files- index.html +23 -38
index.html
CHANGED
@@ -707,7 +707,6 @@
|
|
707 |
const subtitleTrackElement = document.getElementById('subtitleTrackElement');
|
708 |
const videoContainer = document.querySelector('.video-container');
|
709 |
const controls = document.querySelector('.controls');
|
710 |
-
const previewVideo = document.getElementById("previewVideo");
|
711 |
|
712 |
// 初期設定
|
713 |
video.controls = false;
|
@@ -716,37 +715,27 @@
|
|
716 |
let normalVideoWidth = videoContainer.clientWidth;
|
717 |
let audioOnlyMode = false;
|
718 |
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
progressContainer.
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
previewVideo.style.display = "block";
|
741 |
-
previewVideo.style.left = `${e.clientX - 80}px`; // 中央揃え調整
|
742 |
-
previewVideo.style.bottom = "40px"; // プログレスバーの上に表示
|
743 |
-
});
|
744 |
-
|
745 |
-
progressContainer.addEventListener('mouseleave', () => {
|
746 |
-
hoverTime.style.display = 'none';
|
747 |
-
previewVideo.style.display = 'none';
|
748 |
-
});
|
749 |
-
|
750 |
|
751 |
function updatePlaybackRate(value) {
|
752 |
const speed = parseFloat(value);
|
@@ -989,12 +978,8 @@ progressContainer.addEventListener('mouseleave', () => {
|
|
989 |
document.addEventListener('webkitfullscreenchange', updateSubtitleScaleForFullscreen);
|
990 |
document.addEventListener('mozfullscreenchange', updateSubtitleScaleForFullscreen);
|
991 |
document.addEventListener('MSFullscreenChange', updateSubtitleScaleForFullscreen);
|
992 |
-
|
993 |
-
|
994 |
-
// メイン動画のソースをプレビュー用にも設定
|
995 |
-
video.addEventListener('loadedmetadata', () => {
|
996 |
-
previewVideo.src = video.src;
|
997 |
-
previewVideo.preload = "auto";
|
998 |
updatePlaybackRate(speedRange.value);
|
999 |
updateVolume(volumeRange.value);
|
1000 |
updateSubtitleSize(subtitleSize.value);
|
|
|
707 |
const subtitleTrackElement = document.getElementById('subtitleTrackElement');
|
708 |
const videoContainer = document.querySelector('.video-container');
|
709 |
const controls = document.querySelector('.controls');
|
|
|
710 |
|
711 |
// 初期設定
|
712 |
video.controls = false;
|
|
|
715 |
let normalVideoWidth = videoContainer.clientWidth;
|
716 |
let audioOnlyMode = false;
|
717 |
|
718 |
+
// ホバー時の時間表示
|
719 |
+
function setupHoverTime() {
|
720 |
+
progressContainer.addEventListener('mousemove', (e) => {
|
721 |
+
if (!video.duration) return;
|
722 |
+
|
723 |
+
const rect = progressContainer.getBoundingClientRect();
|
724 |
+
const pos = (e.clientX - rect.left) / rect.width;
|
725 |
+
const time = pos * video.duration;
|
726 |
+
|
727 |
+
hoverTime.style.display = 'block';
|
728 |
+
hoverTime.style.left = `${e.clientX - rect.left}px`;
|
729 |
+
|
730 |
+
const minutes = Math.floor(time / 60);
|
731 |
+
const seconds = Math.floor(time % 60).toString().padStart(2, '0');
|
732 |
+
hoverTime.textContent = `${minutes}:${seconds}`;
|
733 |
+
});
|
734 |
+
|
735 |
+
progressContainer.addEventListener('mouseleave', () => {
|
736 |
+
hoverTime.style.display = 'none';
|
737 |
+
});
|
738 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
739 |
|
740 |
function updatePlaybackRate(value) {
|
741 |
const speed = parseFloat(value);
|
|
|
978 |
document.addEventListener('webkitfullscreenchange', updateSubtitleScaleForFullscreen);
|
979 |
document.addEventListener('mozfullscreenchange', updateSubtitleScaleForFullscreen);
|
980 |
document.addEventListener('MSFullscreenChange', updateSubtitleScaleForFullscreen);
|
981 |
+
|
982 |
+
video.addEventListener('loadedmetadata', () => {
|
|
|
|
|
|
|
|
|
983 |
updatePlaybackRate(speedRange.value);
|
984 |
updateVolume(volumeRange.value);
|
985 |
updateSubtitleSize(subtitleSize.value);
|