| Elite-Board tech support https://forum.illusionweb.ru/ |
|
| Темная тема оформления, прошу помощи с js https://forum.illusionweb.ru/viewtopic.php?f=3&t=5109 |
Страница 1 из 1 |
| Автор: | Anton [ 20 ноя 2022, 13:05 ] |
| Заголовок сообщения: | Темная тема оформления, прошу помощи с js |
Добрый день, друзья! Решил попытаться сделать своими силами переключение темной темы на сайте. Делал с помощью js и css. В виде переключателя решил использовать чекбокс. В js не соображаю, по этому гуглил готовый код. CSS Код: Для просмотра Вы должны быть в группе пользователей Elite-Board. HTML Код: Для просмотра Вы должны быть в группе пользователей Elite-Board. JS Код: Для просмотра Вы должны быть в группе пользователей Elite-Board. Беда в том, что стиль переключается. Состояние чекбокса при перезагрузке страницы сохраняется, а вот выбранное черное оформление [dark] - нет. Гуглить пробовал, но либо не то что мне нужно, либо сильно сложно. Прошу вашей помощи. |
|
| Автор: | Иван [ 21 ноя 2022, 00:17 ] |
| Заголовок сообщения: | Re: Темная тема оформления, прошу помощи с js |
Привет Я бы сделал вот так: Код: Для просмотра Вы должны быть в группе пользователей Elite-Board. Код: Для просмотра Вы должны быть в группе пользователей Elite-Board. |
|
| Автор: | Anton [ 21 ноя 2022, 18:19 ] |
| Заголовок сообщения: | Re: Темная тема оформления, прошу помощи с js |
Вчера пока ждал помощи - сидел пробовал варианты и один сработал Код: Для просмотра Вы должны быть в группе пользователей Elite-Board. В принципе тоже что ты предложил. А вот все остальное у тебя по симпатичнее смотрится нежели у меня). Поставил твой - все работает. Спасибо, низкий поклон Теперь решаю вопрос со сменой логотипа на черную версию. Лого у меня svg, вставлен через тег <img>. Мог бы сделать через background-image, а потом менять в css. Но хочется сохранить тег <img>, как никак логотип До смены кода на твой было так: Код: Для просмотра Вы должны быть в группе пользователей Elite-Board. Переключение лого работает, но опять же не сохраняется, а в localStorage.getItem не знаю что прописать, пробовал разные варианты методом сопоставления и подбора, но не вышло. И как мне подсказывает внутреннее чутье - способ "костыль". Путь до лого повторяется не один раз. Копаю дальше. Еще раз спасибо! |
|
| Автор: | Иван [ 21 ноя 2022, 19:51 ] |
| Заголовок сообщения: | Re: Темная тема оформления, прошу помощи с js |
Anton писал(а): Переключение лого работает, но опять же не сохраняется, а в localStorage.getItem не знаю что прописать, пробовал разные варианты методом сопоставления и подбора, но не вышло. И как мне подсказывает внутреннее чутье - способ "костыль". Путь до лого повторяется не один раз. Копаю дальше. Еще раз спасибо! Во-первых: У 2-х разных элементов, на 1 странице не нужно делать одинаковые ID, Я про switch-color, который и на чекбоксе и на логотипе. Смени ID логотипа например на site-logo. Код: Для просмотра Вы должны быть в группе пользователей Elite-Board. И юзай вот так: Код: Для просмотра Вы должны быть в группе пользователей Elite-Board. |
|
| Автор: | Anton [ 22 ноя 2022, 10:57 ] |
| Заголовок сообщения: | Re: Темная тема оформления, прошу помощи с js |
Попробовал поюзать, все отвалилось, стили не переключаются и лого тоже, положение чекбокса не сохраняется ( |
|
| Автор: | Anton [ 22 ноя 2022, 12:32 ] |
| Заголовок сообщения: | Re: Темная тема оформления, прошу помощи с js |
upd. Преблема была в том, что я решил скрипт вставить выше разметки чекбокса и логотипа. до этого скрипт был прописан сразу после чекбокса, для того, чтобы при перезагрузке страницы энейбл чекбокса сразу подгрузился. Сейчас скрипт прописан в футере, и при перезагрузке страницы, если выбрана черная тема, чекбокс на мгновение дисэйбл, а когда браузер считает всю страницу - энейбл. Очень бросается в глаза. А так скрипт коротеньки и решает все задачи. Иван, браво! |
|
| Автор: | Иван [ 22 ноя 2022, 13:15 ] |
| Заголовок сообщения: | Re: Темная тема оформления, прошу помощи с js |
Anton писал(а): upd. Преблема была в том, что я решил скрипт вставить выше разметки чекбокса и логотипа. до этого скрипт был прописан сразу после чекбокса, для того, чтобы при перезагрузке страницы энейбл чекбокса сразу подгрузился. Сейчас скрипт прописан в футере, и при перезагрузке страницы, если выбрана черная тема, чекбокс на мгновение дисэйбл, а когда браузер считает всю страницу - энейбл. Очень бросается в глаза. А так скрипт коротеньки и решает все задачи. Иван, браво! Самый простой вариант избавиться от "дерганий", и чекбокса и цветов, пиши данные не в local storage а в куки. И считывай куки через smarty |
|
| Автор: | Anton [ 25 ноя 2022, 18:58 ] |
| Заголовок сообщения: | Re: Темная тема оформления, прошу помощи с js |
Печенье оказалось мне не по зубам))) Пока решил остановиться на том, что браузер автоматически выбирает тему в зависимости от системной. Лого вывел через задник в CSS. Вот такое решение. Код: Для просмотра Вы должны быть в группе пользователей Elite-Board. |
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |
|