@SplashWeb

Как сделать срабатывание JS раз в сутки?

Есть код всплывающего блока на сайте. Он выводится постоянно, при каждом обновлении.
Подскажите пожалуйста как сделать срабатывание скрипта раз в сутки?

jQuery(document).ready(function($) {  
$(window).scroll(function(){
    if  ($(window).scrollTop() > 400)
        $('#banner').animate({'top':'0px'},500);
        else
        $('#banner').stop(true).animate({'top':'-260px'},500);   
    });
    $('#banner .close').bind('click',function(){
        $(this).parent().remove();  
    });
    });
  • Вопрос задан
  • 560 просмотров
Решения вопроса 1
@EastJesus
Не нужно библиотек, записывайте текущую дату пользователю в localStorage и каждый раз проверяйте ее
if(!localStorage.popupLastView) localStorage.popupLastView = new Date()
if(localStorage.popupLastView && new Date() - localStorage.popupLastView > *тут сравнение*) {
   тут ваша функция
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@dimuska139
Backend developer
Поставь себе библиотеку js-cookie и выставляй куки с временем жизни - сутки, когда юзер закрыл всплывающий блок. Примерно вот так:

jQuery(document).ready(function($) {  
$(window).scroll(function(){
    if (Cookies.get('hideDialog') === undefined) {
        if  ($(window).scrollTop() > 400)
            $('#banner').animate({'top':'0px'},500);
        else
            $('#banner').stop(true).animate({'top':'-260px'},500);       
        });
    }
    $('#banner .close').bind('click',function(){
        Cookies.set('hideDialog', '1', { expires: 1 });
        $(this).parent().remove();  
    });
});
Ответ написан
Комментировать
SagePtr
@SagePtr
Еда - это святое
Запоминать в localStorage дату и время последнего вызова, и вызывать только в случае, если сутки с последнего вызова уже прошли или вызова никогда не было.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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