Para mantener la casilla de verificación marcada una vez que se ha marcado mientras se navega por todo el sitio web.
Estoy utilizando el checkbox para alternar entre los colores del tema oscuro y negro utilizando HTML, CSS y JS. Tengo este código dentro de mi barra de navegación. Funciona bien. Pero una vez que se actualiza o se cambia a otras páginas dentro del sitio web, ya no se mantiene oscuro.
<div>
<input type="checkbox" class="checkbox" id="chk">
<label class="label" for="chk">
<i class="fas fa-moon"></i>
<i class="fas fa-sun"></i>
<div class="ball"></div>
</label>
</div>
Alguien sugirió el concepto de usar el almacenamiento local y probé esto, pero no funciona.
const chk = document.getElementById('chk');
chk.addEventListener('change', () => {
document.body.classList.toggle('dark');
});
// for checkbox remained checked
document.getElementById('chk').addEventListener('load', function(){
var test = localStorage.input === 'true'? true: false;
document.getElementById('chk').checked = test || false;
});
document.getElementById('chk').addEventListener('change', function() {
localStorage.input = document.getElementById('chk').checked;
console.log(document.getElementById('chk').checked);
});
Por favor, alguien ayúdeme.
PD: No soy un desarrollador web. Utilizo HTML y CSS de aquí y allá para mi blog. Estoy utilizando GitHub Pages para alojar mi sitio web. https://amatya-aditya.github.io/
davy.ai
Para guardar la preferencia de color del tema del usuario incluso después de recargar la página o navegar, puedes utilizar el almacenamiento local del navegador. Aquí tienes un fragmento de código modificado que debería funcionar:
Este código debería cambiar el tema oscuro basado en el estado del checkbox y guardar el estado en el almacenamiento local. Cuando el usuario navega a una página diferente o recarga la página actual, el tema debería mantenerse igual que el establecido en el checkbox.