Как сохранить cookie

266
23 марта 2017, 20:44

При загрузки главной страницы mainpage.com срабатывает анимация $("header").addClass("active");, на этой же странице есть переходы на внутренние страницы mainpage.com/innerpage, когда мы заходим во внутреннюю страницу, а потом возвращаемся обратно на главную, срабатывает снова анимация, как можно отключить ее при повторном заходе на эту страницу, я так понимаю это можно сделать с помощью cookie, как это можно реализовать?

Answer 1

Дело в том, что как раз проще это сделать через localStorage или sessionStorage.

Свойство localStorage позволяет получить доступ к локальному Storage объекту. localStorage аналогичено свойству sessionStorage. Разница только в том, свойство sessionStorage хранит данные в течение сеанса (до закрытия браузера), в отличие от данных, находящихся в свойстве localStorage, которые не имеют ограничений по времени хранения и могут быть удалены только с помощью JavaScript.

var isShow = !!parseInt(localStorage.getItem('isShow'));
if(isShow) {
    $("header").addClass("active");
}

Установить в хранилище можно localStorage.setItem('isShow', 0); // или 1

Как одной строкой всё проверять и устанавливать/удалять класс:

$("header")[parseInt(localStorage.isShow) ? 'removeClass' : 'addClass']("active");
Answer 2

Примерно так

function setCookie(cookieName, cookieValue, nDays) {
    var today = new Date();
    var expire = new Date();
    if (nDays == null || nDays == 0)
        nDays = 1;
    expire.setTime(today.getTime() + 3600000 * 24 * nDays);
    document.cookie = cookieName + "=" + escape(cookieValue)
            + ";expires=" + expire.toGMTString()
            + ";path=/";
}

function getCookie(c_name) {
    var i, x, y, ARRcookies = document.cookie.split(";");
    for (i = 0; i < ARRcookies.length; i++) {
        x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
        y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
        x = x.replace(/^\s+|\s+$/g, "");
        if (x == c_name) {
            return unescape(y);
        }
    }
}

сам код вызова

  /*Получаем куку*/
    var check = getCookie('show');
/* Значение check  или пусто должно быть или undefined (надо проверить, не помню :) ) */ 
    if(check == ''){
    /*если нет куки показываем анимацию и вставляем куку*/
    setCookie('show', 1,1);
    $("header").addClass("active");
    }
READ ALSO
Как масштабировать верстку

Как масштабировать верстку

Есть готовая верстка, width-1920 height-4800 responsiv верстка как в макетеЗаказчику не нравится, что на его мониторе все выглядит большим и требует уменьшить...

218
Смещение SVG при анимации в Mozilla

Смещение SVG при анимации в Mozilla

ЗдравствуйтеПодскажите, пожалуйста, с проблемой

204
Адаптивная верстка на три блока

Адаптивная верстка на три блока

Нужно такое сформировать:

225
Когда отключен denwer не работает Mysql

Когда отключен denwer не работает Mysql

Я всегда без без проблем подключался к базам данных на своем компьютере по localhost через любые программы по типу navicat или просто через терминал...

239