Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.05.2023, 12:00
Аспирант
Отправить личное сообщение для Quark_ Посмотреть профиль Найти все сообщения от Quark_
 
Регистрация: 24.06.2015
Сообщений: 96

Запуск видео и остановка другого по клику
Нужна помощь со скриптом, чтобы по клику на любое остановленное видео, оно запускалось, а работающее сразу на паузу.

Структура такая: первое видео с автозапуском, остальные нет.
<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>
Ответить с цитированием
  #2 (permalink)  
Старый 29.05.2023, 13:13
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

<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>
Ответить с цитированием
  #3 (permalink)  
Старый 29.05.2023, 13:47
Аспирант
Отправить личное сообщение для Quark_ Посмотреть профиль Найти все сообщения от Quark_
 
Регистрация: 24.06.2015
Сообщений: 96

voraa, спс работает.
Сообщение от voraa
<script>
const videos = document.querySelectorAll('video');
videos.forEach (video => {
    video.addEventListener('click', (ev) => {
        ev.preventDefault();
        videos.forEach(v => v.pause())
        video.play();
    })
})
</script>
controls="controls" получается лучше скрыть т.к. play/pause по кнопке сбивает скрипт?
Ответить с цитированием
  #4 (permalink)  
Старый 29.05.2023, 14:00
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Так попробуйте
<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
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запустить видео по клику. light Общие вопросы Javascript 4 29.04.2023 23:41
Авто запуск видео на сайте Doker225 Элементы интерфейса 0 28.03.2020 02:49
Загрузка видео по клику. mihail0071 Элементы интерфейса 3 16.09.2018 02:55
Смена видео по клику. lolok Элементы интерфейса 5 18.07.2016 15:14
Запуск таймера по клику Pasechnik Общие вопросы Javascript 4 07.08.2014 14:34