Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

111
Vistas
Cambiar la propiedad flotante de css al hacer clic con javascript

Estoy tratando de hacer un botón de modo oscuro para mi sitio web. mi idea es usar un evento al hacer clic para cambiar el lado de mi interruptor de botón de izquierda a derecha y de derecha a izquierda. funciona en mi primer clic, cambia de izquierda a derecha (de apagado a encendido). Pero cuando trato de cambiarlo de nuevo, no pasa nada. Aquí está mi código

 const buttonmode = document.querySelector("#darkmode"); const switchmode = document.querySelector("#darkswitch"); buttonmode.addEventListener("click",(e) =>{ e.preventDefault(); if(switchmode.style.float="left"){ switchmode.style.float="right"; } else if(switchmode.style.float="right"){ switchmode.style.float="left"; } });
 heres my css button span{ display: block; background: #999; height: 26px; width: 26px; border-radius: 50%; margin-left: 2px; float: left; }
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

En su declaración condicional, para verificar cuál es el valor float actual, debe usar == no solo =

 const buttonmode = document.querySelector("#darkmode"); const switchmode = document.querySelector("#darkswitch"); buttonmode.addEventListener("click",(e) =>{ e.preventDefault(); if(switchmode.style.float == "left") { switchmode.style.float="right"; } else { switchmode.style.float="left"; } });
 #darkswitch { width:50px; height:50px; background:black; }
 <button id="darkmode">Dark Mode</button> <div id="darkswitch"></div>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Yo sugeriría usar classList.toggle

 const themeSwitcher = document.getElementById("themeSwitcher"); themeSwitcher.addEventListener("click", function () { this.classList.toggle("dark"); });
 #themeSwitcher { width: 70px; height: 30px; border-radius: 50px; background-color: #ffffff; border: 2px solid #252525; } #toggler { float: left; width: 30px; height: 30px; background-color: #000000; border-radius: 50%; } .dark #toggler { float: right; }
 <div id="themeSwitcher"> <div id="toggler"></div> </div>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Su problema es que switchmode variable de modo de cambio fuera de la función y la reutiliza en su función. Cada vez que se actualiza DOM, su variable no se actualiza como esperaba. Debería obtener el modo de switchmode nuevamente para las próximas actualizaciones en la función.

También tienes un pequeño problema aquí.

 if(switchmode.style.float="left")

Debería ser === en lugar de = para la condición if-else.

 const buttonmode = document.querySelector("#darkmode"); buttonmode.addEventListener("click",(e) =>{ e.preventDefault(); const switchmode = document.querySelector("#darkswitch"); //move it here if(switchmode.style.float==="left"){ switchmode.style.float="right"; } else if(switchmode.style.float==="right"){ switchmode.style.float="left"; } });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda