Загрузка Jquery работает только один раз при первом нажатии - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь создать слайд-шоу видео, управляемое кнопками «Вперед / Предыдущая», однако работает только событие первого щелчка. Важно, чтобы видео воспроизводилось автоматически, после загрузки воспроизводилось только первое видео, а кнопки «следующий / предыдущий» запускали / перезапускали следующий / предыдущий ролик с самого начала.

Я попытался сделать это с помощью jquery и .load (), чтобы предотвратить загрузку всех других видео в фоновом режиме. В настоящее время он работает при первом нажатии, но любое событие на следующей кнопке не регистрируется.

Вот фрагмент:

var pos = 0,
    slides = $('.slide'),
    /*navl = $('.left'),*/
    numOfSlides = slides.length;

function nextSlide(){
    stopCurrentVideo();
    slides.eq(pos).animate({leftq:'-100%'},0);
    pos = pos >= numOfSlides-1 ? 0 : ++pos;
    slides.eq(pos).css({left:'100%'}).animate({left:0},0);

}

function previousSlide(){
    stopCurrentVideo();
    slides.eq(pos).animate({left:'100%'},0);
    pos = pos == 0 ? numOfSlides-1 : --pos;
    slides.eq(pos).css({left:'-100%'}).animate({left:0},0);
    /*navl.eq(pos).css({display:'none'});*/
}

function stopCurrentVideo(){
    $('.slider-video:eq('+pos+')').load()
    .siblings('.overlay-content').show();
}

$('.left').click(previousSlide);
$('.right').click(nextSlide);

    $('#next1.navigation.right').on('click', function() {
  $('#video-sequence-2').load('https://cbtesting.s3-us-west-2.amazonaws.com/video-sequencing-1.html #video2');
 $('#next1.navigation.right').hide();
});

            $('#next2.navigation.right').on('click', function() {
  $('#video-sequence-3').load('https://cbtesting.s3-us-west-2.amazonaws.com/video-sequencing-1.html #video3');
 /*$('button').hide();*/
});

    $('#next3.navigation.right').on('click', function() {
  $('#video-sequence-4').load('https://cbtesting.s3-us-west-2.amazonaws.com/video-sequencing-1.html #video4');
 /*$('button').hide();*/
});
html {
    font-size: 16px;
}
body {
    font-family: PT Sans, sans-serif;
    color: #333333;
    line-height: auto;
}

.video-slider {
    max-width: 1920px;
    height: 1080px;
    width:100%;
    margin:0 auto;
    /*background: #444;*/
    position: relative;
    overflow: hidden;
}
.slide {
    position: absolute;
    top: 0;
    left: 100%;
    height: 100%;
    width: 100%;
    text-align: center;
    overflow: hidden;
}
.slide:first-child{
    left: 0;
}

.overlay-content {
    background: #f8f9fa;
    position: absolute;
    bottom: 40%;
    right: 3%;
    height: 400px;
    width: 400px;
    opacity: 0.8;
}

#navigation{
    background: none;
    position: relative;
    padding-top: 5%;
    height: 5%;
    width: 24%;
    float: right;
}

.overlay-content p, h3{
    font-family: PT Sans, sans-serif;
    position: relative;
    font-size:16px;
    text-align: left;
    line-height: auto;
    color:#333333;
    padding:5%;
}

.overlay-content p:first-child{
    font-family: PT Sans, sans-serif;
    position: relative;
    font-size:16px;
    text-align: left;
    line-height: auto;
    color:#333333;
    padding:5%;
}

.overlay-content h3{
    padding-bottom: 1%;
    font-size:18px;
}

.navigation.left{
    position: inherit;
    text-align: left;
    display: inline-block;
    /* bottom: 10%; */
    left: 8%;
    cursor: pointer;
    opacity: 1;
    color: black;

}
.navigation.right{
    position: inherit;
    display: inline-block;
    text-align: right;
    /* bottom: 10%; */
    right: 8%;
    cursor: pointer;
    opacity: 1;
    color: black;
}

video{
    max-height: 100%;
    max-width: 100%;
    /*pointer-events: none;*/
}

video::-webkit-media-controls {
  display: none;
}

video::-webkit-media-controls-play-button {
    display: none;

}
video::-webkit-media-controls-volume-slider {
    display: none;
}
video::-webkit-media-controls-mute-button {
    display: none;
}
video::-webkit-media-controls-timeline {
    display: none;
}
video::-webkit-media-controls-current-time-display{
    display: none;
}
<script src="https://code.jquery.com/jquery-latest.min.js"></script>
<div class="video-slider">
    <!-- SLIDE 1 -->
    <div class="slide">
        <video class="slider-video" id="split01" autoplay controls="false">
            <source src="https://cbtesting.s3-us-west-2.amazonaws.com/vid1.mp4" type="video/mp4" />
        </video>
        <div class="overlay-content animated fadeIn">
        <div id="navigation">
            <div class="navigation right" id="next1">Next</div>
            <!-- <div class="navigation left">Previous</div> -->
        </div>
        </div>
    </div>
    <!-- SLIDE 2 -->
    <div class="slide">
        <div id="video-sequence-2"></div>
    </div>
    <!--SLIDE 3-->

    <div class="slide">
        <div id="video-sequence-3"></div>
    </div>
    
        <div class="slide">
        <div id="video-sequence-4"></div>
    </div>
    
</div>

И внешняя html-страница выглядит так:

   <video class="slider-video" id="split02" controls="false">
            <source src="https://cbtesting.s3-us-west-2.amazonaws.com/vid2.mp4" type="video/mp4" />
        </video>
        <div class="overlay-content animated fadeIn">
            <h3>Headline02</h3>
        <p>
        2. - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
        </p>
        <div id="navigation">
            <div class="navigation right" id="next2">Next</div>
            <!-- <div class="navigation left">Previous</div> -->
        </div>
    </div>  
</div>



<!-- VIDEO 3 -->

<div id="video3">
        <video class="slider-video" id="split03" controls="false">
            <source src="https://cbtesting.s3-us-west-2.amazonaws.com/vid1.mp4" type="video/mp4" />
        </video>
        <div class="overlay-content animated fadeIn">
            <h3>Headline03</h3>
        <p>
        3. - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
        </p>
        <div id="navigation">
            <div class="navigation right" id="next3">Next</div>
            <div class="navigation left">Previous</div>
        </div>
</div>
</div>

и т. Д.

Я пытаюсьперезапустите видео независимо от того, нажимает ли пользователь предыдущий или следующий. При попытке проверить 2-ю кнопку «Далее» сообщений об ошибках нет.

Любая помощь действительно ценится!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...