Προς το περιεχόμενο

Δεν λειτουργεί Dark mode toggle button


atrwtos

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)


Έχω ενσωματώσει πριν το </body> των παρακάτω κώδικα.

function switchTheme(e) {
  if (e.target.checked) {
    document.documentElement.setAttribute('data-theme', 'dark');
    document.body.classList.add('dark-mode'); // add this line
    localStorage.setItem('theme', 'dark');
  } else {
    document.documentElement.setAttribute('data-theme', 'light');
    document.body.classList.remove('dark-mode'); // add this line
    localStorage.setItem('theme', 'light');
  }    
}

και σαν gadget τον παρακάτω κώδικα

https://safenote.co/r/640068bdc23545@52009245 (Τον έβαλα εδώ γιατί όταν τον κάνω ποστ εδώ μου εμφανίζει μήνυμα στο insomnia σφαλματος δεν επιτρέπετε η πρόσβαση)


Το κουμπί εμφανίζετε αλλά δεν λειτουργεί γιατί?? μπορεί να με πει κάποιος που γνωρίζει? 

Επεξ/σία από atrwtos
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Με λίγες μικρές διορθώσεις σε εμένα λειτούργησε.

Ο τελικός κώδικας μέσα στο script είναι αυτός

const toggleSwitch = document.querySelector('#toggle');
const currentTheme = localStorage.getItem('theme');
if (currentTheme) {
 document.documentElement.setAttribute('data-theme', currentTheme);
 if (currentTheme === 'dark') {
toggleSwitch.checked = true;
document.documentElement.setAttribute('data-theme', 'dark');
document.body.classList.add('dark-mode');
 }
}
function switchTheme(e) {
 if (e.target.checked) {
document.documentElement.setAttribute('data-theme', 'dark');
document.body.classList.add('dark-mode');
//  document.querySelector('body').setAttribute('class', 'dark-mode');
localStorage.setItem('theme', 'dark');
 } else {
document.documentElement.setAttribute('data-theme', 'light');
document.body.classList.remove('dark-mode'); // add this line
localStorage.setItem('theme', 'light')}}
toggleSwitch.addEventListener('change', switchTheme, false);

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

3 ώρες πριν, k33theod είπε

Με λίγες μικρές διορθώσεις σε εμένα λειτούργησε.

Ο τελικός κώδικας μέσα στο script είναι αυτός

const toggleSwitch = document.querySelector('#toggle');
const currentTheme = localStorage.getItem('theme');
if (currentTheme) {
 document.documentElement.setAttribute('data-theme', currentTheme);
 if (currentTheme === 'dark') {
toggleSwitch.checked = true;
document.documentElement.setAttribute('data-theme', 'dark');
document.body.classList.add('dark-mode');
 }
}
function switchTheme(e) {
 if (e.target.checked) {
document.documentElement.setAttribute('data-theme', 'dark');
document.body.classList.add('dark-mode');
//  document.querySelector('body').setAttribute('class', 'dark-mode');
localStorage.setItem('theme', 'dark');
 } else {
document.documentElement.setAttribute('data-theme', 'light');
document.body.classList.remove('dark-mode'); // add this line
localStorage.setItem('theme', 'light')}}
toggleSwitch.addEventListener('change', switchTheme, false);

 

Σε ευχαριστώ για την απάντηση ..αλλά όχι δεν λειτουργεί και μου εμφανίζει το button τετράγωνοεπιλογής.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κάτι στον κώδικα του css τότε δεν διαβάζεται καλά από τον browser

Μπορείς να πάρεις των κώδικα από εδώ https://replit.com/@k33theod/dark-theme

css και js είναι στα αντίσοιχα files

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...