Запуск видео и остановка другого по клику
Нужна помощь со скриптом, чтобы по клику на любое остановленное видео, оно запускалось, а работающее сразу на паузу.
Структура такая: первое видео с автозапуском, остальные нет. <p class="video"> <video autoplay="autoplay" loop="loop" muted="muted" controls="controls" onloadstart="this.volume=0.1"><source src="/images/video/01.mp4" type="video/mp4" /></video> <video controls="controls" onloadstart="this.volume=0.1"><source src="/images/video/02.mp4" type="video/mp4" /></video> <video controls="controls" onloadstart="this.volume=0.1"><source src="/images/video/03.mp4" type="video/mp4" /></video> </p> |
<body> <p class="video"> <video autoplay="autoplay" loop="loop" muted="muted" controls="controls" onloadstart="this.volume=0.1"><source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4" /></video> <video controls="controls" onloadstart="this.volume=0.1"><source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4" /></video> <video controls="controls" onloadstart="this.volume=0.1"><source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4" /></video> </p> <script> const videos = document.querySelectorAll('video'); videos.forEach (video => { video.addEventListener('click', (ev) => { ev.preventDefault(); videos.forEach(v => v.pause()) video.play(); }) }) </script> </body> |
voraa, спс работает.
Цитата:
|
Так попробуйте
<body> <p class="video"> <video autoplay="autoplay" loop="loop" muted="muted" controls="controls" onloadstart="this.volume=0.1"><source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4" /></video> <video controls="controls" onloadstart="this.volume=0.1"><source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4" /></video> <video controls="controls" onloadstart="this.volume=0.1"><source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4" /></video> </p> <script> const videos = document.querySelectorAll('video'); videos.forEach (video => { video.addEventListener('play', (ev) => { for (const v of videos) if (v!==video) v.pause() }) video.addEventListener('click', (ev) => { if (ev.target === video) { ev.preventDefault(); video.play(); } }) }) </script> </body> Но клик на controls действительно работает только при клике на саму кнопку play/pause |
Часовой пояс GMT +3, время: 15:52. |