JS Исходник Гайд Работа с LocalStorage в java script

_Nelit_

Потрачен
Автор темы
109
39
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В пример возьмём сайт с возможностью изменения темы. После смены темы и закрытия страницы сайта выбранная тема пропадёт, будет установлена тема по умолчанию. В таких случаях разработчики сайтов используют локальное хранилище LocalStorage или кукис файлы. В данной теме я расскажу о локальном хранилище.

RSukrE4.png


Создадим структуру сайта. Сделаем 3 css файла (основной, тёмная тема и светлая тема). Создадим кнопку на экране и напишем ей пару стилей. По нажатии на кнопку будем менять у link css название файла с light.css на dark.css, затем сохранять значение в локальное хранилище.
Получилось что то такое:

Снимок экрана 2022-04-18 222352.png


Код:

HTML:
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <link rel="stylesheet" href="assets/css/light.css">
</head>
<body>
    <div class="change-style-inner">
        <button class="change-style-btn">Dark Style</button>
    </div>

    <script src="assets/js/main.js"></script>
</body>
</html>

CSS:
@import url(light.css);
@import url(dark.css);

* {
    margin: 0;
    padding: 0;
}

.change-style-inner {
    display: flex;
    justify-content: center;
    margin-top: 100px;
}

.change-style-btn {
    padding: 8px 20px 8px 20px;
    border: none;
    border-radius: 15px;
    cursor: pointer;
    transition: 0.3s;
}

.change-style-btn:hover {
    background-color: blueviolet;
    color: white;

JavaScript:
const change_style_btn = document.getElementById('change-style')
const link_css = document.querySelector('link')

change_style_btn.addEventListener('click', change_style)

function change_style() {
    if (link_css.getAttribute('href') == 'assets/css/light.css') {
        change_style_btn.textContent = 'Light Style'
        link_css.setAttribute('href', 'assets/css/dark.css')
    } else if (link_css.getAttribute('href') == 'assets/css/dark.css') {
        change_style_btn.textContent = 'Dark Style'
        link_css.setAttribute('href', 'assets/css/light.css')
    }
}

setItem(ключ, значение) - установить значение ключу
getItem(ключ) -получить значение ключа


При работа с LocalStorage нам понадобится знать стандартные команды (написал те, которые будут использоваться)

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

Создадим функцию check_style(), которая будет проверять значения ключа, если его не будет, она создаст его и даст значения "light"
JavaScript:
function check_style() {
    if (localStorage.getItem('style_gide_bh') == 'light') {
        link_css.setAttribute('href', 'assets/css/dark.css')
        change_style_btn.textContent = 'Light Style'
    } else if (localStorage.getItem('style_gide_bh') == 'dark') {
        link_css.setAttribute('href', 'assets/css/light.css')
        change_style_btn.textContent = 'Dark Style'
    } else if (localStorage.getItem('style_gide_bh') == null) {
        localStorage.setItem('style_gide_bh', 'light')
    }
}

Изменим функцию смены стиля change_style()
JavaScript:
function change_style() {
    if (localStorage.getItem('style_gide_bh') == 'light') {
        localStorage.setItem('style_gide_bh', 'dark')
        check_style()
    } else if (localStorage.getItem('style_gide_bh') == 'dark') {
        localStorage.setItem('style_gide_bh', 'light')
        check_style()
    }
}

Обязательно делаем вызов функции change_style() в коде.
Так выглядит полный js код
JavaScript:
const change_style_btn = document.getElementById('change-style')
const link_css = document.querySelector('link')

change_style_btn.addEventListener('click', change_style)

check_style()

function change_style() {
    if (localStorage.getItem('style_gide_bh') == 'light') {
        localStorage.setItem('style_gide_bh', 'dark')
        check_style()
    } else if (localStorage.getItem('style_gide_bh') == 'dark') {
        localStorage.setItem('style_gide_bh', 'light')
        check_style()
    }
}

function check_style() {
    if (localStorage.getItem('style_gide_bh') == 'light') {
        link_css.setAttribute('href', 'assets/css/dark.css')
        change_style_btn.textContent = 'Light Style'
    } else if (localStorage.getItem('style_gide_bh') == 'dark') {
        link_css.setAttribute('href', 'assets/css/light.css')
        change_style_btn.textContent = 'Dark Style'
    } else if (localStorage.getItem('style_gide_bh') == null) {
        localStorage.setItem('style_gide_bh', 'light')
    }
}

RSukrE4.png


Проект - https://github.com/NELIT2714/LocalStorage
 
Последнее редактирование:

Itachi Uchiha

Участник
124
21
В пример возьмём сайт с возможностью изменения темы. После смены темы и закрытия страницы сайта выбранная тема пропадёт, будет установлена тема по умолчанию. В таких случаях разработчики сайтов используют локальное хранилище LocalStorage или кукис файлы. В данной теме я расскажу о локальном хранилище.

RSukrE4.png


Создадим структуру сайта. Сделаем 3 css файла (основной, тёмная тема и светлая тема). Создадим кнопку на экране и напишем ей пару стилей. По нажатии на кнопку будем менять у link css название файла с light.css на dark.css, затем сохранять значение в локальное хранилище.
Получилось что то такое:

Посмотреть вложение 144110

Код:

HTML:
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <link rel="stylesheet" href="assets/css/light.css">
</head>
<body>
    <div class="change-style-inner">
        <button class="change-style-btn">Dark Style</button>
    </div>

    <script src="assets/js/main.js"></script>
</body>
</html>

CSS:
@import url(light.css);
@import url(dark.css);

* {
    margin: 0;
    padding: 0;
}

.change-style-inner {
    display: flex;
    justify-content: center;
    margin-top: 100px;
}

.change-style-btn {
    padding: 8px 20px 8px 20px;
    border: none;
    border-radius: 15px;
    cursor: pointer;
    transition: 0.3s;
}

.change-style-btn:hover {
    background-color: blueviolet;
    color: white;

JavaScript:
const change_style_btn = document.getElementById('change-style')
const link_css = document.querySelector('link')

change_style_btn.addEventListener('click', change_style)

function change_style() {
    if (link_css.getAttribute('href') == 'assets/css/light.css') {
        change_style_btn.textContent = 'Light Style'
        link_css.setAttribute('href', 'assets/css/dark.css')
    } else if (link_css.getAttribute('href') == 'assets/css/dark.css') {
        change_style_btn.textContent = 'Dark Style'
        link_css.setAttribute('href', 'assets/css/light.css')
    }
}

setItem(ключ, значение) - установить значение ключу
getItem(ключ) -получить значение ключа


При работа с LocalStorage нам понадобится знать стандартные команды (написал те, которые будут использоваться)

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

Создадим функцию check_style(), которая будет проверять значения ключа, если его не будет, она создаст его и даст значения "light"
JavaScript:
function check_style() {
    if (localStorage.getItem('style_gide_bh') == 'light') {
        link_css.setAttribute('href', 'assets/css/dark.css')
        change_style_btn.textContent = 'Light Style'
    } else if (localStorage.getItem('style_gide_bh') == 'dark') {
        link_css.setAttribute('href', 'assets/css/light.css')
        change_style_btn.textContent = 'Dark Style'
    } else if (localStorage.getItem('style_gide_bh') == null) {
        localStorage.setItem('style_gide_bh', 'light')
    }
}

Изменим функцию смены стиля change_style()
JavaScript:
function change_style() {
    if (localStorage.getItem('style_gide_bh') == 'light') {
        localStorage.setItem('style_gide_bh', 'dark')
        check_style()
    } else if (localStorage.getItem('style_gide_bh') == 'dark') {
        localStorage.setItem('style_gide_bh', 'light')
        check_style()
    }
}

Обязательно делаем вызов функции change_style() в коде.
Так выглядит полный js код
JavaScript:
const change_style_btn = document.getElementById('change-style')
const link_css = document.querySelector('link')

change_style_btn.addEventListener('click', change_style)

check_style()

function change_style() {
    if (localStorage.getItem('style_gide_bh') == 'light') {
        localStorage.setItem('style_gide_bh', 'dark')
        check_style()
    } else if (localStorage.getItem('style_gide_bh') == 'dark') {
        localStorage.setItem('style_gide_bh', 'light')
        check_style()
    }
}

function check_style() {
    if (localStorage.getItem('style_gide_bh') == 'light') {
        link_css.setAttribute('href', 'assets/css/dark.css')
        change_style_btn.textContent = 'Light Style'
    } else if (localStorage.getItem('style_gide_bh') == 'dark') {
        link_css.setAttribute('href', 'assets/css/light.css')
        change_style_btn.textContent = 'Dark Style'
    } else if (localStorage.getItem('style_gide_bh') == null) {
        localStorage.setItem('style_gide_bh', 'light')
    }
}

RSukrE4.png


Проект - https://github.com/NELIT2714/LocalStorage
Смысл поста? Люди не умеют обычную документацию читать?