|
|
Модератор форума: Yuri_G |
Сообщество uCoz Модули uCoz Дополнительные функции Тёмная тема для сайта от UCOZ (Вопросы-ответы) |
Тёмная тема для сайта от UCOZ |
Здравствуйте. В первую очередь хочу сказать спасибо всем кто работает над нововведениями платформы! В этом году я взял 2 мегаполезных для своих сайтов дополнения - всплывающие окна с привязкой к куки и тёмную тему сайта.
Но с тёмной темой возникли сложности. Было бы замечательно подстраивать сайт под настройки пользователя, но к сожалению автопереход в тёмную-светлую тему на вашем скрипте не работает нигде. Ни в Firefox, ни в Chrome, ни на iPad и iPhone в Safari В Firefox и Chrome по умолчанию стоит тёмная тема - сайт светлый пока не переключишь по иконке. На планшетах и телефонах такая же история - в 10 вечера они переходят в тёмную системную тему, но сайт не реагирует, остаётся в светлой теме. Сперва думал я где-то накосячил с установкой и CSS, но сайт-образец тоже показывает белую тему по умолчанию вне зависимости от настроек девайсов или браузеров на компьютере. Сейчас скрипт такой: Код let dmTimeoutId = null; const btnEl = document.getElementById('dm_btn'); const icon = btnEl.querySelector('svg'); const iconUseEL = btnEl.querySelector('use'); const darkModeMediaQuery = window.matchMedia("(prefers-color-scheme: dark)"); const toggleBtnState = (force, init=false) => { clearTimeout(dmTimeoutId); if (!init) { icon.classList.add('dm-spin'); dmTimeoutId = setTimeout(() => icon.classList.remove('dm-spin'), 500); } iconUseEL.setAttribute('xlink:href', force ? '#moon_icon' : '#sun_icon'); }; const getPreferredTheme = () => { const mode = localStorage.getItem("darkmode"); if (mode) { return mode === "true"; } else { return darkModeMediaQuery.matches; } }; const applyMode = (isDarkMode, fromListener = false)=>{ document.body.classList.toggle('dark-mode', isDarkMode); toggleBtnState(isDarkMode, fromListener); localStorage.setItem('darkmode', isDarkMode) }; applyMode(getPreferredTheme(), true); btnEl.addEventListener('click', () => { document.body.classList.toggle('dark-mode'); applyMode(document.body.classList.contains('dark-mode')); }); Как можно решить проблему? Прикрепления:
40536222.png
(37.1 Kb)
|
| |||
| |||