Как открыть всплывающее окно при загрузке страницы?

Я использую Magnific Popup и хочу, чтобы видео появлялось, как только страница загружается во всплывающем окне.

Я заставил плагин работать нормально, но я понятия не имею, как заставить его всплывать, как только страница загружается, не нажимая на миниатюру.

Я искал решение, но мне не удалось заставить его работать.


person Bruno Gomes    schedule 10.09.2013    source источник


Ответы (2)


Если вы используете jQuery, вы можете просто прослушать событие загрузки окна, а затем вызвать метод open для вашего Magnific Popup следующим образом:

(function($) {
    $(window).load(function () {
        // retrieved this line of code from http://dimsemenov.com/plugins/magnific-popup/documentation.html#api
        $.magnificPopup.open({
            items: {
                src: 'someimage.jpg'
            },
            type: 'image'

          // You may add options here, they're exactly the same as for $.fn.magnificPopup call
          // Note that some settings that rely on click event (like disableOn or midClick) will not work here
        }, 0);
    });
})(jQuery);
person bbone    schedule 10.09.2013
comment
Большое спасибо! работал отлично! теперь мне просто нужно изменить его, чтобы вместо этого загрузить видео. я должен заменить тип: «изображение» на слово «iframe»? и в src: могу ли я просто добавить ссылку на видео на YouTube? Спасибо еще раз за помощь! - person Bruno Gomes; 10.09.2013
comment
Отлично, рад слышать, что это сработало. Честно говоря, я не слишком хорошо знаком с Magnific Popup, но, судя по документации, это звучит правильно. - person bbone; 10.09.2013
comment
да, я попробовал это сразу после того, как опубликовал комментарий, и это тоже было решением. еще раз спасибо хехе - person Bruno Gomes; 11.09.2013
comment
после закрытия страница обновляется и снова модальные загрузки - person San; 15.11.2013
comment
Как бы вы тогда установили это, чтобы показывать только один раз. Значит, после его закрытия посетитель запоминается, скажем, на 30 дней, прежде чем он снова появится? - person pinkp; 14.06.2019
comment
можем ли мы использовать опцию обратного вызова с открытыми функциями? - person Fauzan Edris; 25.03.2021

Мне удалось заставить работать модальное время с помощью функции jquery setTimeout. Просто оберните .magificpopup в функцию settimeout, чтобы установить задержку. Измените значение 5000 (5 секунд) на любое значение, которое вы хотите.

Смотри ниже:

$(document).ready(function () {
setTimeout(function() {
 if ($('#myModal').length) {
   $.magnificPopup.open({
    items: {
        src: '#myModal' 
    },
    type: 'inline'
      });
   }
 }, 5000);
});
person Syndication    schedule 26.08.2014
comment
setTimeout не будет работать на сервере, потому что это будет зависеть от скорости интернета. - person Pratik Mehta; 20.09.2019
comment
У меня работает, но я удаляю условие if для проверки модального присутствия (в любом случае лучше поместить его перед setTimeout) - person Artur Mamedov; 28.01.2021