Arsen Lüpen
Hectopat
- Katılım
- 28 Şubat 2021
- Mesajlar
- 80
Daha fazla
- Cinsiyet
- Erkek
Merhaba. Web sitemde ayarlar sayfası yapıyorum. Siteme karanlık ve aydınlık mod ekledim. Düzgün bir şekilde çalışıyor. Ama ben ayarlar sayfasındaki linki bir önceki sayfaya yönlendiren bir link veya buton yapmak istiyorum. Link veya buton olması fark etmez. JS ile fonksiyon açıp history.back() diyerek yapmaya çalıştım. Oldu bir önceki sayfaya yönlendirildim. Ama geri gittiğim sayfada yenilemem gerekiyor settings sayfasında yaptığım değişikliğin geçerli olması için. Yani settings sayfasında aydınlıktan karanlığa aldığımda ve geri döndüğümde döndüğüm sayfayı yenilemeden karanlık moda geçsin istiyorum. Yardımcı olursanız sevinirim.
Ben bu şekilde yaptım. Daha kolay bir yolu varsa anlatırsanız teşekkür ederim.
Kod:
<!DOCTYPE html>
<html lang="en" data-theme="light">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My Website</title>
<link rel="stylesheet" href="settings_page.css">
</head>
<body>
<header>
<h1>My Website</h1>
<div class="theme-switch">
<label for="toggle-dark-mode">Dark Mode</label>
<input type="checkbox" id="toggle-dark-mode">
</div>
</header>
<main>
<p>Welcome to my website!</p>
<a href="main_page.php">Learn more</a>
</main>
<script src="settings_page.js"></script>
</body>
</html>
Kod:
:root {
--background-color: #fff;
--text-color: #333;
--link-color: #06f;
}
[data-theme="dark"] {
--navbar-background-color: #2B2B2B;
--background-color: #423F3E;
--button-text-color: #ddd;
--text-color: #ddd;
--link-color: #0cf;
}
Kod:
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
const currentTheme = localStorage.getItem('theme');
if (currentTheme) {
document.documentElement.setAttribute('data-theme', currentTheme);
if (currentTheme === 'dark') {
toggleSwitch.checked = true;
}
}
function switchTheme(e) {
if (e.target.checked) {
document.documentElement.setAttribute('data-theme', 'dark');
localStorage.setItem('theme', 'dark');
} else {
document.documentElement.setAttribute('data-theme', 'light');
localStorage.setItem('theme', 'light');
}
}
toggleSwitch.addEventListener('change', switchTheme, false);
Ben bu şekilde yaptım. Daha kolay bir yolu varsa anlatırsanız teşekkür ederim.