Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Выставить задержку ??? (https://javascript.ru/forum/dom-window/40631-vystavit-zaderzhku.html)

ilyas-> 13.08.2013 14:46

Выставить задержку ???
 
Скрипт блок на подписку в группу вконтакте, всплывает промежутком жизни куки, жизнь куки выставил на 20 часов, пользователь открывает саит модальное окно сразу всплывает, мне нужно чтобы сперва открылся саит а через 1 мин всплыло окошко, получается что кука отжила свои 20 часов пользователь открывает саит и вместе сразу всплывает модальное окно, вообщем нужна задержка в 1 мин

Вот скрипт инициализации модального окна
$(document).ready(function(){

function fancybox_show()
{

$(function () {
    $.fancybox.open([
        {
            type: 'iframe',
            href : '/personal/why_we/vk.html'  ,            
            title : ''
        }
    ], {
        padding : 0,
		 autoSize: false,
                    autoDimensions: false,
                    width: 570,
                    height: 520,
                    fitToView: false,
                    padding: 0
    });
});  
}
var date = new Date();
var mSec = 72000*1000; 

function show_fancybox(){

  if($.cookie('fancybox_show')){}else{
    // запускаем fancybox
fancybox_show();
       
   date.setTime(date.getTime()+mSec);
   
   $.cookie('fancybox_show', date.getTime(),{ path: "/", expires: date});
  }
}

$(function(){
   show_fancybox();
   setInterval(show_fancybox, 5000);
})

$('.fancybox').fancybox({
		maxWidth:700,
		maxHeight:530,
		
		
		});

});

ilyas-> 13.08.2013 18:56

после конца жизни как сюда привязать delay() перед запуском жизни кук?

ilyas-> 14.08.2013 07:17

Может я вопрос непонятно задал?
Вот то модальное окошко про которое тему веду ссылка, когда кука сдохла при открытии сайта всплывает это окно и сразу заново создается кука на определенный период времени, так вот мне нада чтобы это окно не сразу всплывало когда кука уже сдохла а с задержкой в 1мин ??

ruslan_mart 14.08.2013 12:39

http://javascript.ru/setTimeout

Kvark 14.08.2013 12:40

я пока еще не спец, но попробуйте так:
функции выдвиньте из .ready, тогда
$(document).ready(function()
{
		fancybox_show();
		setInterval(show_fancybox, 1000);
});

тоесть первой пусть стартует та функция которая у вас занимаеться подготовкой, а потом уже та что проверяет условие (будет выполняться каждую сек.) ну а там уж как сработает ваше условие в момент проверки - вызывайте показ окна или чего там у вас

ruslan_mart 14.08.2013 12:49

Kvark, только вот кавычки убрать нужно ;)

Kvark 14.08.2013 13:00

поправился :)

ilyas-> 14.08.2013 15:54

Цитата:

Сообщение от Kvark (Сообщение 267479)
я пока еще не спец, но попробуйте так:
функции выдвиньте из .ready, тогда
$(document).ready(function()
{
		fancybox_show();
		setInterval(show_fancybox, 1000);
});

тоесть первой пусть стартует та функция которая у вас занимаеться подготовкой, а потом уже та что проверяет условие (будет выполняться каждую сек.) ну а там уж как сработает ваше условие в момент проверки - вызывайте показ окна или чего там у вас

Не работает, вообще не всплывает

ilyas-> 14.08.2013 22:31

кто нибуть может мне помочь?

Kvark 15.08.2013 13:11

так помойму тебе уже помогли и сказали как сделать :) если предложиш вознаграждение то желающих сделать за тебя - знаааачительно увеличиться ;)

ruslan_mart 15.08.2013 17:07

ilyas->, пора уже взяться за учебник, а не ежедневно задаваться простыми вопросами. ;)

ilyas-> 24.08.2013 20:03

Цитата:

Сообщение от Kvark (Сообщение 267479)
я пока еще не спец, но попробуйте так:
функции выдвиньте из .ready, тогда
$(document).ready(function()
{
		fancybox_show();
		setInterval(show_fancybox, 1000);
});

тоесть первой пусть стартует та функция которая у вас занимаеться подготовкой, а потом уже та что проверяет условие (будет выполняться каждую сек.) ну а там уж как сработает ваше условие в момент проверки - вызывайте показ окна или чего там у вас



выложил для наглядности,
<link rel="stylesheet" href="http://ilyas.host-yes.ru/bitrix/fancybox2/jquery.fancybox.css" type="text/css" media="screen" />
<script src="http://ilyas.host-yes.ru/bitrix/fancybox2/jquery.fancybox.js" type="text/javascript"></script>
<script src="http://ilyas.host-yes.ru/bitrix/fancybox2/jquery.cookie.js" type="text/javascript"></script>
<script>
$(document).ready(function(){

function fancybox_show()
{

$(function () {
    $.fancybox.open([
        {
            type: 'iframe',
            href : 'http://ilyas.host-yes.ru/bitrix/vk.html'              
           // 
		  
        }
    ], {
        padding : 0,
		autoSize: false,
        autoDimensions: false,
        width: 416,
        height: 416,
        fitToView: false,
        margin: 0,
		helpers : {
        overlay : {
            locked : false
        }}
    });
});

}
var date = new Date();
var mSec = 20*1000;

function show_fancybox(){

  if($.cookie('fancybox_show')){}else{
    // запускаем fancybox
fancybox_show();
       
   date.setTime(date.getTime()+mSec);
   
   $.cookie('fancybox_show', date.getTime(),{ path: "/", expires: date});
  }
}



});



$(document).ready(function()
{
		fancybox_show();
		setInterval(show_fancybox, 1000);
});

</script>


если выдвигаю как говорите из .ready и вставляю ваш код то вообще ничего не работает ссылка выберете onLoad чтобы модальное окошко выскачило

ilyas-> 26.08.2013 19:24

Да и еще помогите прикрутить ротацию виджет href : 'http://ilyas.host-yes.ru/bitrix/vk.html', пока виджет только от вконтаке еще хотелось однокласники фэйсбук, и их каждый день по очереди показывать

ilyas-> 29.08.2013 18:16

если я вопрос непонятно задал, дайте мне знать

JustCrazy 29.08.2013 19:29

вот этот участок кода у вас отвечает за запуск модального окна, когда документ загрузился и каждые 5 секунд мониторит куки,
$(function(){
   show_fancybox();
   setInterval(show_fancybox, 5000);
})

чтобы скрипт стартовал через минуту после запуска страницы:
$(function(){
   setTimeout(function(){ 
     show_fancybox();
     setInterval(show_fancybox, 5000); 
  },60000);
})

ilyas-> 30.08.2013 16:49

Цитата:

Сообщение от JustCrazy (Сообщение 269938)
вот этот участок кода у вас отвечает за запуск модального окна, когда документ загрузился и каждые 5 секунд мониторит куки,
$(function(){
   show_fancybox();
   setInterval(show_fancybox, 5000);
})

чтобы скрипт стартовал через минуту после запуска страницы:
$(function(){
   setTimeout(function(){ 
     show_fancybox();
     setInterval(show_fancybox, 5000); 
  },60000);
})

Спасибо за ответ, а вот еще я задавал вопрос как можно будет менять href, по истечении жизни куки при новом старте кук загружать виджет от однокласников а уже в следующий раз загружать vk ? Получается эдакая ротация виджетов по href

ilyas-> 01.09.2013 21:13

Цитата:

Сообщение от JustCrazy (Сообщение 269938)
вот этот участок кода у вас отвечает за запуск модального окна, когда документ загрузился и каждые 5 секунд мониторит куки,
$(function(){
   show_fancybox();
   setInterval(show_fancybox, 5000);
})

чтобы скрипт стартовал через минуту после запуска страницы:
$(function(){
   setTimeout(function(){ 
     show_fancybox();
     setInterval(show_fancybox, 5000); 
  },60000);
})


Если страницу перезагрузить то таймер опять отсчитает минуту и поновой запустит скрипт даже не обращая на существующую куку, пока не создаст куку будет 2 раза в течениии 10 сек перезагружать виджет пока не создаст куку, похоже кука перетирается, ведь после того как пользователь откроет страницу он же не будет сидеть минуту на главной странице и ждать пока модальное окно всплывет, он пойдет по сайту и в получится что каждый раз таймер будет запускаться по новой


Часовой пояс GMT +3, время: 00:15.