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

264
Vistas
¿Cómo actualiza javascript los elementos en un DOM?

Estoy tratando de reducir la velocidad de una animación de una imagen que se reduce para que pueda ver cómo se reduce en lugar de simplemente saltar a un tamaño más pequeño, pero lo que sucede es que mi consola registra las actualizaciones como debería, con intervalos entre cada actualización. , pero la imagen en la pantalla espera hasta que se completa el ciclo for y luego salta al tamaño final en lugar de volverse más pequeña gradualmente. ¿Hay algún problema con mi código o me estoy perdiendo algunas cosas detrás de escena sobre cómo se actualiza la página?

 function sleep(milliseconds) { const date = Date.now(); let currentDate = null; do { currentDate = Date.now(); } while (currentDate - date < milliseconds); } function makeSmaller(){ for (let i = 100; i>50; i--){ rockButtonImage.style.width = i+'%'; console.log(rockButtonImage.style.width); sleep(50); } }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Los navegadores modernos evitan las representaciones innecesarias de una página y esperan mientras se completa una iteración de ejecución de JavaScript antes de realizar una representación.

La función sleep() en el código provisto realmente no hace que un navegador se sleep , sino que hace un cálculo intensivo del procesador, lo que impide que el navegador procese nada.

Puede intentar usar la función setTimeout() en su lugar, por ejemplo:

 var i = 100; function makeSmaller(){ console.log(rockButtonImage.style.width); rockButtonImage.style.width = i+'%'; i--; if (i > 50) { setTimeout(makeSmaller, 50); } }

También puede resultarle útil confiar en las animaciones CSS o las transiciones CSS en lugar de JavaScript para tales efectos visuales, ya que JS no es tan eficiente como ellos.

Ver también:

  • Más sobre setTimeout : https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout
  • Más sobre las animaciones CSS: https://developer.mozilla.org/en-US/docs/Web/CSS/animation
about 4 years ago · Juan Pablo Isaza Denunciar

0

Debe obtener dinámicamente el elemento DOM getElementById y luego cambiar el ancho. No estoy seguro en qué contexto vive la variable RockButton. Es todo sobre el estado.

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