@Worddoc
Frontend explorer

Почему не работает остановка видео jquery?

Здравствуйте. Начало проигрывания видео работает хорошо, но видео никак не хочет останавливаться по клику, в чем может быть дело?
<div class="input-play"><i class="icon-play-circled2"></i></div>
		<video src="video/guardians.mp4" poster="img/main2.jpg" id="video"></video>


if($('.input-play i[class="icon-play-circled2"]')) {
    $('.input-play').click(function(){
      $('.input-play i').toggleClass('icon-play-circled2');
      $('.input-play i').toggleClass('icon-cancel');
      $('#video').get(0).play();
    })
  }
  else if($('.input-play i[class="icon-cancel"]')) {
    $('.input-play').click(function(){
      $('.input-play i').toggleClass('icon-cancel');
      $('.input-play i').toggleClass('icon-play-circled2');
      $('#video').get(0).pause();
    })
  }


BOWER!

21a94ddb64af41d2a35c9a6fda8da670.PNG

Первый снимок, это внеший вид по дефолту. Эта картинка - постер, которая берется по src в html.
По нажатию кнопки в верхнем правом углу, панель с рейтингом съезжает и начинается воспроизведение видео. Так вот, после того, как нажата кнопка, класс иконочного шрифта меняется и вместо Play картинки появляется крестик. Нужно чтобы по нажатию на крестик, видео не останавливалось, а возвращало себе состояние по умолчанию, как на 1 картинке. Если по нажатию на крестик добавить в свойства видео video.currentTime = video.paused ? 0 : video.currentTime; то это не то что нужно. Да, видео возвращается в начало, но постер как по дефолту не появляется.(рисунок 2)e66e23dd3dc84308b71dce14667bd1aa.PNG

Я попробовал по нажатию на крестик сделать $('#video').replaceWith(на то же самое видео), чтобы добиться этого эффекта, постер появляется, воспроизведение обнуляется, но если нажать на Play иконку опять(она появилась после нажатия на крестик), то воспроизводится на фоне звук от видео, которое было удалено из DOM и замещено на новое видео. И вот играет старое видео на фоне, а с новым ничего не происходит. В чем проблема?(( Подскажи пожалуйста, я возможно ее сам даже решу, просто нужно знать, почему элемент не удаляется из DOM(хотя внешне в коде он удаляется...)
  • Вопрос задан
  • 766 просмотров
Решения вопроса 1
Bowen
@Bowen
Японский бог
$(function(){
	var video = $('#video')[0];
    $('.input-play').on('click', function(){
       $('i', this).toggleClass('icon-play-circled2 icon-cancel');
       video[video.paused ? 'play' : 'load']();
    });
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы