Как заставить fancybox вспывать не по клику а по событию onload ???
Модальное окно fancybox с iframe контентом внутри (под iframe я подразумеваю что в модальном окне будет группа подписчиков вконтакте) должно всплывать через заданный промежуток времени и независимо хоть перезапустили браузер или выключили компьютер все равно должен в куках запомнить когда его первый раз запустили и отсчитывать например 15сек или 24 часа. По умолчанию это модальное окно fancybox с iframe контентом внутри (чтобы был именно iframe кон-т в модальном окне нужно давать класс iframe ссылке <a class="iframe" href="http://www.example">This goes to iframe</a>) только оно всплывает по клику и еще нужно привязывать к ссылке, а мне нужно чтобы модальное окно всплывало самостоятельно не опираясь ни на какую ссылку с каким нибуть там классом. Таким образом я хочу подталкивать посетителей ненавязчиво подписаться в группу сайта вконтакте.
|
var date = new Date(); if( ! $.cookie('fancybox_show') ){ // запускаем fancybox $.cookie('fancybox_show', date.getTime(),{ path: "/", expires: 1}); // кука будет жить 24 часа // date.getTime() - не обязательно даже, просто на всякий знать когда был запущен последний раз } |
Смотри на сайте fancybox'а API. Там что-то вроде
$.fancybox.open(null, {url: '//vk.com'}); |
Цитата:
|
1. // запускаем fancybox - пишете вместо этого ваш скрипт с запуском fancybox я писать его вместо вас не буду
2. Цитата:
var sec = 15; date.setTime(date.getTime() + (sec * 1000)); $.cookie('fancybox_show', date.getTime(),{ path: "/", expires: date}); |
Цитата:
|
var date = new Date(); if( ! $.cookie('fancybox_show') ){ // запускаем fancybox var sec = 5; date.setTime(date.getTime() + (sec * 1000)); $.cookie('fancybox_show', date.getTime(),{ path: "/personal/carts/content.html", expires: date}); } вставил вот такую запись в body, что то модальное окно не всплыло через 5сек и после вставки такой записи var date = new Date(); if( ! $.cookie('fancybox_show') ){ // запускаем fancybox $.cookie('fancybox_show', date.getTime(),{ path: "/personal/carts/content.html", expires: 1}); // кука будет жить 24 часа // date.getTime() - не обязательно даже, просто на всякий знать когда был запущен последний раз } тоже после первого обновления страницы не всплывает модальное окно ??? |
модальное окно которое работает по клику у меня вот инициализируется
$(document).ready(function() { $("a.gallery, a.iframe").fancybox(); $("a.modalbox").fancybox( { "frameWidth" : 500, "frameHeight" : 500 }); $("a.gallery2").fancybox( { "padding" : 0, // отступ контента от краев окна "imageScale" : false, // Принимает значение true - контент(изображения) масштабируется по размеру окна, или false - окно вытягивается по размеру контента. По умолчанию - TRUE "zoomOpacity" : false, // изменение прозрачности контента во время анимации (по умолчанию false) "zoomSpeedIn" : 1000, // скорость анимации в мс при увеличении фото (по умолчанию 0) "zoomSpeedOut" : 1000, // скорость анимации в мс при уменьшении фото (по умолчанию 0) "zoomSpeedChange" : 1000, // скорость анимации в мс при смене фото (по умолчанию 0) "frameWidth" : 500, // ширина окна, px (425px - по умолчанию) "frameHeight" : 500, // высота окна, px(355px - по умолчанию) "overlayShow" : true, // если true затеняят страницу под всплывающим окном. (по умолчанию true). Цвет задается в jquery.fancybox.css - div#fancy_overlay "overlayOpacity" : 0.5, // Прозрачность затенения (0.3 по умолчанию) "hideOnContentClick" :false, // Если TRUE закрывает окно по клику по любой его точке (кроме элементов навигации). Поумолчанию TRUE "centerOnScroll" : false // Если TRUE окно центрируется на экране, когда пользователь прокручивает страницу }); $("#menu a, .anim").hover( function() { $(this).animate({"paddingLeft" : "10px"}, 300)}, function() {$(this).animate({"paddingLeft" : "0"}, 300); }); $("a.iframe").fancybox( { "frameWidth" : 420, // ширина окна, px (425px - по умолчанию) "frameHeight" : 420 // высота окна, px(355px - по умолчанию) }); }); значит дублирую этот код и куда там ваш нужно вставлять??? |
var date = new Date(); var mSec = 5*1000; function show_fancybox(){ if( ! $.cookie('fancybox_show') ){ // запускаем fancybox date.setTime(date.getTime() +mSec); $.cookie('fancybox_show', date.getTime(),{ path: "/personal/carts/content.html", expires: date}); } } $(function(){ show_fancybox() setInterval(show_fancybox, mSec) }) |
Ку-ку, ёпта! Открывай либо через API либо триггери клик по отфэнсибоксенному элементу через .click()
|
Часовой пояс GMT +3, время: 20:25. |