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

248
Vistas
El estilo "superior" del elemento HTML que se establece generó un número aleatorio pero no se movió a la posición en JavaScript

He estado trabajando en un proyecto y rehaciendo Snake. Se supone que todo el código establece la posición de la manzana en un número aleatorio y lo registra como si lo hiciera, pero la manzana permanece en el mismo lugar. El tipo de posición es "relativo", por lo que permanece dentro de un cuadro. Esta es la primera vez que uso HTML y Javascript juntos. El código simplemente no funciona (no hay errores ni advertencias). El código de generación de números aleatorios es el siguiente:

 function rand(min, max, step) { var delta, range, rand; if (arguments.length < 2) { max = min; min = 0; } if (!step) { step = 1; } delta = max - min; range = delta / step; rand = Math.random(); rand *= range; rand = Math.floor(rand); rand *= step; rand += min; return parseInt(rand); }

El código para establecer la posición de "manzanas" (en js):

 function generateApple() { let y = parseInt(rand(-15, 470, 15)) apple.style.top = y console.log(apple.style.top) }

Imprime con éxito la nueva ubicación pero no mueve el objeto HTML "manzana" a la posición. Tengo la posición inicial establecida en 15 en style.left y 15 en style.top . El CSS para la manzana es el siguiente:

 .apple { height: 15px; width: 15px; background-color: red; border: 2px; }

El código que establece la posición como relativa cuando se carga la ventana es el siguiente

 window.addEventListener('load', () => { snake.style.position = 'relative'; apple.style.position = 'relative' snake.style.left = 105; snake.style.top = 105; apple.style.top = 15; apple.style.left = 15; if (highScore == null) { window.localStorage.setItem('high_score', 0) } });

El código completo está en este sitio web: https://passionproject.on.fleek.co

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El evento de load de la ventana se activa después de que se haya ejecutado el JavaScript que está posicionando la manzana. Si coloca puntos de interrupción en su código, verá que primero mueve la manzana a la posición correcta y luego se dispara el detector de eventos de load .

Dado que su JS está en la parte inferior de la página, la solución más simple es no usar el detector de eventos de load y simplemente hacerlo de inmediato.

about 4 years ago · Santiago Trujillo 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