1
votes

Quoi qu'il en soit, pour enregistrer une image d'arrière-plan, alors quand il se recharge, enregistrez votre choix

Je développe un site sur lequel vous pouvez définir un "mode sombre" mais lorsque j'y accède ou que je le rafraîchis, il le remet toujours en version claire. Est-ce que leur choix peut être défini / enregistré sur un appareil.

 <button onclick="document.body.style.backgroundColor = '#2e2e2e'">Dark Mode</button>
  <button onclick="document.body.style.backgroundColor = 'white'">Light Mode</button>

C'est tout ce que j'ai pour le moment, jusqu'à ce que je sache comment enregistrer ce choix.

p>


0 commentaires

3 Réponses :


0
votes

J'ai trouvé celui-ci sur Vanilla JS. Vous pouvez enregistrer votre session.

document.body.style.backgroundColor = sessionStorage.getItem('bg');
document.body.style.color = sessionStorage.getItem('cc');
function darker() {

 if ( sessionStorage.getItem('bg') === 'rgb(255, 255, 255)') {

        sessionStorage.setItem('bg', 'rgb(6, 23, 37)');

        sessionStorage.setItem('cc', '#777');

         }
        else if (sessionStorage.getItem('bg') == null || undefined) {
            sessionStorage.setItem('bg', 'rgb(6, 23, 37)');
            sessionStorage.setItem('cc', '#777');

        }
        else if( sessionStorage.getItem('bg') === 'rgb(6, 23, 37)') {

            sessionStorage.setItem('bg', 'rgb(255, 255, 255)');
            sessionStorage.setItem('cc', '#333');


        }

    document.body.style.backgroundColor = sessionStorage.getItem('bg');
    document.body.style.color = sessionStorage.getItem('cc');

    }


0 commentaires

1
votes

Utilisez le cookie JavaScript

Tout le code ici

Remarque: J'utilise un cookie dont le nom est: bodyColor;

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Testing Page</title>
</head>
<body onload="setbodycolor()">
<p>Testing Page</p>

<button onclick="setbodyBGDarkColor();setCookieDark()">Dark Mode</button>
<button onclick="setbodyBGWhileColor();setCookieWhite()">Light Mode</button>


<script>
    function setbodyBGDarkColor(){
        document.body.style.backgroundColor = '#2e2e2e'
    }
    function setbodyBGWhileColor(){
        document.body.style.backgroundColor = 'white'
    }

    function setCookieDark(){
        document.cookie="bodyColor=#2e2e2e;expires=Wed, 18 Dec 2023 12:00:00 GMT"
    }
    function setCookieWhite(){
        document.cookie="bodyColor=#ffffff;expires=Wed, 18 Dec 2023 12:00:00 GMT"
    }


    function getCookie(cname) {
        var name = cname + "=";
        var ca = document.cookie.split(';');
        for(var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
        c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
        }
        return "";
    }

    function setbodycolor(){
        var bodyc=getCookie("bodyColor");
        document.body.style.backgroundColor = ""+bodyc;
    }
</script>

</body>
</html>

Je pense que c'est la meilleure solution pour vous.


0 commentaires

0
votes

Il y a plusieurs façons de faire cela - une façon serait d'utiliser le LocalStorage pour y parvenir comme indiqué ci-dessous:

<button id="dark">Dark Mode</button>
<button id="light">Light Mode</button>
/* 
Local helper applies color to document background and saves that color for
recall on future page loads
*/
function applyTheme(color) {

  localStorage.set("themeColor", color);

  document.body.style.backgroundColor = themeColor;
}

/* 
Setup event hander that is called when DOM is ready
*/
window.addEventListener('DOMContentLoaded', () => {

    /* 
    When DOM ready, load previous theme color and apply it (or default to 
    white if no color previously saved)
    */
    applyTheme(localStorage.get("themeColor") || "white");

    /* 
    Bind click event to buttons and invoke apply theme helper function
    */
    document.getElementById("dark").addEventListener("click", () => applyTheme("#2e2e2e"));        
    document.getElementById("light").addEventListener("click", () => applyTheme("white"));    
});


0 commentaires