Как по клику по видео сделать паузу и потом по повторному воспроизвести . Видео несколько на одной стр

let currentVideo = null; // Переменная для хранения текущего видео

document.querySelectorAll('.values__content-slider_slide-flex_photo').forEach(function(photo) {
    photo.addEventListener('click', function() {
        // Добавляем класс photo-none к текущему элементу и его соседям
        this.classList.add('photo-none'); // 'this' - это элемент, на который кликнули

        // Останавливаем текущее видео, если оно проигрывается
        if (currentVideo && !currentVideo.paused) {
            currentVideo.pause();
            currentVideo.currentTime = 0; // Сбрасываем время видео
        }

        // Добавляем класс photo-none к элементам с классом values__content-slider_slide-flex_photo-play
        const playButton = this.querySelector('.values__content-slider_slide-flex_photo-play');
        if (playButton) {
            playButton.classList.add('photo-none');
        }

        // Воспроизводим новое видео
        const video = this.querySelector('.values__content-slider_slide-flex_photo-video');
        if (video) {
            video.play();
            currentVideo = video; // Обновляем текущую видео-переменную
        }
    });
});

// Остановка видео, если оно не видно
function checkVisibility() {
    document.querySelectorAll('.values__content-slider_slide-flex_photo-video').forEach(function(video) {
        const rect = video.getBoundingClientRect();
        const isVisible = (
            rect.top >= 0 &&
            rect.left >= 0 &&
            rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
            rect.right <= (window.innerWidth || document.documentElement.clientWidth)
        );

        if (!isVisible) {
            video.pause(); // Останавливаем видео, если не видно
            if (currentVideo === video) {
                currentVideo = null; // Обнуляем текущую видео-переменную, если она не видна
            }
        }
    });
}
                                            <div class="values__content-slider_slide-flex_photo">
                                                <video class="values__content-slider_slide-flex_photo-video" controls loop>
                                                    <source src="assets/video/video.mp4" type="video/mp4">
                                                </video>
                                                <img class="values__content-slider_slide-flex_photo-play" src="assets/img/Play.png" alt="play">
                                            </div>
                                            
                                                                                        <div class="values__content-slider_slide-flex_photo">
                                                <video class="values__content-slider_slide-flex_photo-video" controls loop>
                                                    <source src="assets/video/video.mp4" type="video/mp4">
                                                </video>
                                                <img class="values__content-slider_slide-flex_photo-play" src="assets/img/Play.png" alt="play">
                                            </div>


Ответы (1 шт):

Автор решения: Опан

Я Ваш код не задействовал, это другой вариант с меньшим количеством кода:

const allvideo = document.querySelectorAll("video");
for(i = 0; i < allvideo.length; i ++){
    allvideo[i].onclick = function(){this.paused ? this.play() : this.pause()};
}
<video src="https://mysynthesizer.github.io/index.hetemeel/video1.mp4"></video>
<video src="https://mysynthesizer.github.io/index.hetemeel/video2.mp4"></video>

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

→ Ссылка