Как показать div один раз через каждый определенный интервал времени - PullRequest
1 голос
/ 08 июня 2019

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

Например, когда вы впервые открываете веб-сайт утром, оно приветствует вас сообщением «Доброе утро» только один раз, а затемне показывать это приветствие каждый раз, когда вы обновляете страницу, пока следующая часть дня не начнется, например, днем ​​или вечером, и наоборот.

Возможно ли это?

Ответы [ 2 ]

1 голос
/ 08 июня 2019

Да. Вы можете сделать это, используя Simple LocalStorage (для ведения истории последнего отображаемого сообщения) и Сравнение даты и времени в Javascript

<script>
    setInterval(greet , 1000*60);
    function greet(){

        var date = new Date();
        try{
            if(!localStorage.lastGreeted || !localStorage.lastGreetedPeriod)
                greetWithMessage(date);
            else if(getDate(localStorage.lastGreeted)!=getDate(date))
                greetWithMessage(date);
            else if(divideDayTime(date.getHours())!=localStorage.lastGreetedPeriod)
                greetWithMessage(date);
        }
        catch(err){

             greetWithMessage(date);
        }

    }



    function getDate(obj){
        if(!(obj instanceof Date) )
            obj = new Date(obj);
        return obj.getDate()+'-'+(1+obj.getMonth())+'-'+obj.getFullYear();
    }

    function divideDayTime(hours){
     //Update Message and It's Period Here 
        if(hours<12)
            return 'MORNING';
        else if(hours>=12 && hours <=16)
            return 'AFTERNOON';
        else if(hours>16 && hours<=20)
            return "EVENING";
        else 
            return "NIGHT";

    }
    function greetWithMessage(d){
        localStorage.lastGreeted=d;
        var message = localStorage.lastGreetedPeriod=divideDayTime(d.getHours());

        alert("Good "+ message);
    }


    </script>
1 голос
/ 08 июня 2019

Для этого вы можете использовать модал для отображения приветствия при каждом посещении платформы пользователем. Сохраните время последнего входа в систему в файлах cookie и обращайтесь к ним при каждом входе в систему и отправляйте им соответствующее приветствие.

...