Привет! Итак, если вы похожи на меня и любите атмосферу темного режима, возможно, вы подумали о том, чтобы добавить его на свой веб-сайт. Его довольно легко настроить, используя немного CSS и JavaScript. Вот как я это сделал.
Во-первых, вам нужна кнопка или переключатель, с помощью которого пользователи смогут переключаться между светлым и темным режимами. Для этого примера я использовал простую кнопку (при желании вы можете использовать значок):
Эта кнопка будет триггером переключения режимов.
Далее вам нужно определить, как будут выглядеть светлый и темный режимы. В вашем CSS вы настроите стили по умолчанию (которые будут вашим светлым режимом), а затем добавите класс темного режима, который переопределяет эти стили.
body { background-color: white; color: black; transition: background-color 0.3s, color 0.3s; } .dark-mode { background-color: #121212; color: #ffffff; }
Вот что происходит:
Теперь мы заставляем кнопку что-то делать. Этот фрагмент JavaScript будет переключать класс .dark-mode в теле при каждом нажатии кнопки.
const toggleButton = document.getElementById('dark-mode-toggle'); const body = document.body; toggleButton.addEventListener('click', () => { body.classList.toggle('dark-mode'); // Save the user's preference in local storage if (body.classList.contains('dark-mode')) { localStorage.setItem('theme', 'dark'); } else { localStorage.setItem('theme', 'light'); } });
Вот разбивка:
Чтобы убедиться, что сайт загружается в предпочитаемом пользователем режиме, вам необходимо проверить localStorage при загрузке страницы и соответствующим образом установить режим.
window.addEventListener('load', () => { const savedTheme = localStorage.getItem('theme'); if (savedTheme === 'dark') { body.classList.add('dark-mode'); } });
Если вы используете React, процесс очень похож, но вы будете управлять всем внутри своих компонентов. Вот как это сделать:
Используйте useState React для управления состоянием темного режима и примените соответствующий класс к корневому элементу:
import React, { useState } from 'react'; function App() { const [darkMode, setDarkMode] = useState(false); const toggleDarkMode = () => { setDarkMode(!darkMode); }; return (); } export default App;
В этом примере:
Добавьте класс .dark-mode в свой CSS, как и раньше:
body { background-color: white; color: black; transition: background-color 0.3s, color 0.3s; } .dark-mode { background-color: #121212; color: #ffffff; }
Если вы хотите, чтобы настройки темы сохранялись, вы можете добавить эту небольшую настройку:
import React, { useState, useEffect } from 'react'; function App() { const [darkMode, setDarkMode] = useState(() => { const savedTheme = localStorage.getItem('theme'); return savedTheme === 'dark'; }); useEffect(() => { localStorage.setItem('theme', darkMode ? 'dark' : 'light'); }, [darkMode]); return (); } export default App;
Вот что происходит:
И всё! Это более простой способ добавить темный режим в ваше приложение React, не усложняя ситуацию.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3