Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][JavaScript]DarkMode css
Forum PHP.pl > Forum > Przedszkole
TakiTaki
Cześć,
Mam następujący problem próbuje dodać dark mode do strony i pojawia się błąd "toggleSwitch is null"

  1. <div id="dark-switch" class="custom-control custom-switch tw mode-switch" style="padding-top: 27px; padding-left: 45px;">
  2. <input type="checkbox" class="custom-control-input" id="darkSwitch">
  3. <label class="custom-control-label" for="darkSwitch" style="color: white;">Dark Mode</label>
  4. </div>



  1.  
  2. const toggleSwitch = document.querySelector('.mode-switch input[type="checkbox"]');
  3. const currentTheme = localStorage.getItem('theme');
  4.  
  5. if (currentTheme) {
  6. document.documentElement.setAttribute('data-theme', currentTheme);
  7.  
  8. if (currentTheme === 'dark') {
  9. toggleSwitch.checked = true;
  10. }
  11. }
  12.  
  13. function switchTheme(e) {
  14. if (e.target.checked) {
  15. document.documentElement.setAttribute('data-theme', 'dark');
  16. localStorage.setItem('theme', 'dark');
  17. }
  18. else { document.documentElement.setAttribute('data-theme', 'light');
  19. localStorage.setItem('theme', 'light');
  20. }
  21. }
  22.  
  23. toggleSwitch.addEventListener('change', switchTheme, false);
  24.  


i css


  1. :root {
  2. --background_color_body: #303030;
  3. --text_color_body: #000000;
  4. --background_nav_color: #353A40;
  5. --content-color: #F5F5F5;
  6. --right-form-color: #000000;
  7.  
  8. }
  9.  
  10. [data-theme="dark"] {
  11. --background_color_body: #000000;
  12. --text_color_body: #ffffff;
  13. --background_nav_color: #353A40;
  14. --content-color: #202020;
  15. --right-form-color: #FFFFFF;
  16.  
  17. }
  18.  
  19. .body{
  20. margin-bottom: 100px;
  21. background-color: var(--background_color_body);
  22. color: var(--text_color_body);
  23. }


Ktoś może mi wyjaśnić dlaczego się pojawia ten błąd?
LowiczakPL
  1. <input type="checkbox" class="custom-control-input mode-switch">


lub

  1. const toggleSwitch = document.getElementById('darkSwitch');
TakiTaki
dzięki za odpowiedź niestety nadal taki sam problem po zmianie kodu. Nie wiem czy ma to znaczenie ale korzystam z laravela 8 mam inny projekt na 7 i nie ma takiego problemu.

Dodatkowo jeśli usunę kod odnośnie ciemnego motywu to kod up button również nie działa i pojawia się taki sam błąd "mybutton is null"

Nie wiem w czym jest problem skoro ten sam kod działał na 7.


  1. <button onclick="topFunction()" id="myBtn">Top</button>


  1. var mybutton = document.getElementById("myBtn");
  2.  
  3. window.onscroll = function() {scrollFunction()};
  4.  
  5. function scrollFunction() {
  6. if (document.body.scrollTop > 350 || document.documentElement.scrollTop > 350) {
  7. mybutton.style.display = "block";
  8. } else {
  9. mybutton.style.display = "none";
  10. }
  11. }
  12.  
  13. function topFunction() {
  14. document.body.scrollTop = 0;
  15. document.documentElement.scrollTop = 0;
  16. }
  17.  
  18. $('.toTop').on('click', function(event) {
  19. event.preventDefault();
  20. $('html, body').animate({ scrollTop: 0 }, 'slow');
  21. });


To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.