Изображение / видео пауза слайдер проблема - PullRequest
0 голосов
/ 25 сентября 2018

У меня хорошо работает слайдер изображений / видео.Однако в конце видео вы можете увидеть, что оно останавливается на секунду перед тем, как скользить.Я знаю, что это из-за настройки автоматической скорости, но я не слишком уверен, как я могу преодолеть это, поскольку я хочу 1 секунду между всеми слайдами.Как я могу исправить эту проблему?

$(document).ready(function() {
  $('.sliderMain').slick({
    slidesToShow: 1,
    slidesToScroll: 1,
    arrows: false,
    fade: true,
    asNavFor: '.sliderSidebar',
    autoplay: true,
    autoplaySpeed: 1000
  });

  $('.sliderMain').on('afterChange', function(event, slick, currentSlide) {
    var vid = $(slick.$slides[currentSlide]).find('video');
    if (vid.length > 0) {
      $('.sliderMain').slick('slickPause');
      $(vid).get(0).play();
    }
  });

  var videos = document.getElementsByTagName('video');

  for (var i = 0; i < videos.length; i++) {
    videos[i].addEventListener('ended', myHandler, false);
  }

  function myHandler(e) {
    console.log('Video Complete')
    $('.sliderMain').slick('slickPlay');
  }
});
#slideBox {
  width: 1300px;
  max-height: 500px;
  overflow: hidden;
  margin: 1% auto;
  position: relative;
  top: 1em;
  background-color: #54585A;
  border-radius: .3em;
}
<script src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="https://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.slick/1.5.6/slick.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/jquery.slick/1.5.6/slick.css" />
<div id="slideBox">
  <div id="main-image" class="sliderMain">
    <div><img src="http://placehold.it/900x500"></div>
    <div id="slide-video">
      <video preload autoplay width="900px" height="500px" id="theVideo">
        <source src="http://project-progress.co.uk/Background-Slider-Plugin-jQuery-sliderResponsive/video.mp4" />
      </video>
    </div>
  </div>
</div>

Скрипка здесь: - https://jsfiddle.net/rjwbq62u/2/

1 Ответ

0 голосов
/ 25 сентября 2018
$(document).ready(function(){

       // $.each($('video'), function(index, obj){

         //obj.onended = function(e) //{$('.sliderMain').slick('slickPlay');}

        //obj.('ended',function(){});

       // });



        $('.sliderMain').slick({
            slidesToShow: 1,
            slidesToScroll: 1,
            arrows: false,
            fade: true,
            asNavFor: '.sliderSidebar',
            autoplay: true,
            autoplaySpeed: 1000
        });
        $('.sliderMain').on('afterChange', function(event, slick, currentSlide) {
            var vid = $(slick.$slides[currentSlide]).find('video');
            if (vid.length > 0) {                   
                $('.sliderMain').slick('slickPause');
                      $(vid).get(0).play();
            setTimeout(function(){$('.sliderMain').slick('slickPlay');
            }, (vid.duration* 1000 + 1000));
            }
        });

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