Bueno, estoy haciendo un juego (tontería) pero ya me sirve para aprender y practicar algunas cosas.
Lo que intento es hacer que una imagen se mueva de arriba a abajo de forma continua. Al principio lo hice mediante Keyframes del CSS pero Javascript no detecta la posición margin-top, siempre lo detecta en 0. Sin embargo buscando encontré que puedo decirle que se mueva usando el Style.Top. Con un Alert he podido comprobar que me detecta sin problemas la posición.
Ahora viene el problema. Le metido dentro de un Timer la función tal cual.
Código:
setInterval(function(){bid001()}, 1000); function bid001(){ if (document.getElementById("bid01").style.top <= "650px") { document.getElementById("bid01").style.top = document.getElementById("bid01").style.top + "100px"; } else if (document.getElementById("bid01").style.top >= "651px") { document.getElementById("bid01").style.top = "-30px"; } }
Esto funciona 1 sola vez. La segunda vez debería seguir bajando la imagen pero en vez de eso me suelta este aviso:
Error al interpretar el valor para 'top'. Declaración rechazada.
En otros navegadores (utilizo Firefox) no marca errores o avisos pero hace lo mismo :(
Mi idea es mover la imagen y que pueda elegir cuando quiera que vuelva arriba mientras sigue desplazándose hacia abajo.
Espero haberme explicado y que me podáis ayudar.
También otra cosa. Como veis estoy usando el getElementById cuando podría meterlo en una variable para así no tener que poner tanto código, pues bueno aunque lo ponga en una variable me salta error de que no existe la variable :S. No entiendo nada. Tengo otros trabajos de clase en las que declaro variables de elementos con ID y funcionan y no se porque aquí no quiere pillarme la variable. Otras veces en vez de decirme variable is null me dice que falta " ; ". Hace 3 semanas que empece con Javascript así que soy un poco noob aun.
Este juego lo hago por mi cuenta y aunque le he pedido ayuda al profesor prefiero seguir con el temario de clase y aprender lo que enseña y dejar el juego para mi tiempo libre.
Un saludo y gracias de antemano.