@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();  
    });
    });
  • Вопрос задан
  • 521 просмотр
Решения вопроса 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 дату и время последнего вызова, и вызывать только в случае, если сутки с последнего вызова уже прошли или вызова никогда не было.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 20:43
20000 руб./за проект
19 апр. 2024, в 20:11
500 руб./за проект