|
Метки: очистка ручная отмена |
(не показано 76 промежуточных версий этого же участника) |
Строка 1: |
Строка 1: |
| function toggleTheme() {
| |
| const body = document.querySelector('body');
| |
| if (body.classList.contains('dark')) {
| |
| body.classList.remove('dark');
| |
| body.classList.add('light');
| |
| localStorage.setItem('theme', 'light');
| |
| } else {
| |
| body.classList.remove('light');
| |
| body.classList.add('dark');
| |
| localStorage.setItem('theme', 'dark');
| |
| }
| |
| }
| |
|
| |
|
| function getSavedTheme() {
| |
| return localStorage.getItem('theme') || 'dark';
| |
| }
| |
|
| |
| function initTheme() {
| |
| const savedTheme = getSavedTheme();
| |
| const body = document.querySelector('body');
| |
| body.classList.add(savedTheme);
| |
| }
| |
|
| |
| function createThemeButton() {
| |
| const personalElement = document.querySelector('#p-personal');
| |
| const themeButton = document.createElement('button');
| |
| themeButton.textContent = 'Сменить тему';
| |
| themeButton.addEventListener('click', toggleTheme);
| |
| personalElement.parentNode.insertBefore(themeButton, personalElement);
| |
| }
| |
|
| |
| document.addEventListener('DOMContentLoaded', function () {
| |
| initTheme();
| |
| createThemeButton();
| |
| });
| |