Как автоматически не воспроизводить видео если модальное окно закрыто

Тема в разделе "JavaScript", создана пользователем dgkk, 13 май 2016.

XEvil 4.0 Релиз Состоялся!
  1. dgkk

    dgkk Постоялец

    Регистр.:
    16 дек 2012
    Сообщения:
    129
    Симпатии:
    45
    Всем привет!

    Есть модальное окно, которое окрывается 1 раз в день для 1 пользователя, т.е. через куки.
    Код:
    $(document).ready(function() {
        if (!$.cookie('hidden.bs.modal')) {
            setTimeout(function(){
                $('#overlay-banner').modal('show');
            }, 1000); // появление с задержкой
            setTimeout('$("#overlay-banner").hide();',5000); //автоматическое закрытие
        }
        $.cookie('hidden.bs.modal', true, {
            expires: 1, // Время хранения cookie в днях
            path: '/'
        });
    });
    
    В нем автоматически воспроизводится видео
    Код:
    <video width="600" height="320" autoplay="" controls=""><source type="video/mp4" src="/video/credo.mp4"></source></video>
    Как сделать так, чтобы если модальное окно не открывается, то и видео не воспроизводится? Думал вырезать атрибут autoplay с помощью .removeAttr("autoplay"), но что-то не получается или не верно дописал в скрипт.. Может есть еще варианты решения моей задачи?
     
    Последнее редактирование: 13 май 2016
  2. Absolute

    Absolute Крокодил ;)

    Регистр.:
    9 авг 2009
    Сообщения:
    561
    Симпатии:
    427
    Например, на лету создавать контейнер проигрывателя, добавлять в тот момент, когда это нужно и удалять тогда, когда это нужно.
    HTML:
    $(document).ready(function(){
      var contVideo = $('<video />', {
        width : 600,
        height : 320,
        autoplay : '',
        controls : ''
      })
      .append($('<source />', {
        type : 'video/mp4',
        src : 'http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4'
      }));
      contVideo.appendTo('body');
    
      setTimeout(function(){
        contVideo.remove();
      }, 3000);
    });
     
  3. dgkk

    dgkk Постоялец

    Регистр.:
    16 дек 2012
    Сообщения:
    129
    Симпатии:
    45
    Решил проблему не много иначе. Изначально убрал autoplay , а потом, если модальное окно открывается, то налету добавляется атрибут
    Код:
    $(document).ready(function() {
        if (!$.cookie('hidden.bs.modal')) {
            setTimeout(function(){
                $('#overlay-banner').modal('show');
            }, 1000); // появление с задержкой
            $('video').prop("autoplay", true); //добавление атрибута autoplay
            setTimeout('$("#overlay-banner").remove();',113000); //автозакрывание окна
        }
        $.cookie('hidden.bs.modal', true, {
            expires: 1, // Время хранения cookie в днях
            path: '/'
        });
    });