Mi animación de JS reinicia su margen superior (marginTop), pero no su margen izquierdo (marginLeft).
Soy súper novato en las animaciones de JavaScript. Acabo de descubrir cómo agregar el segundo movimiento a mi animación.
Al ejecutar la función funk()
, la pelota se mueve hacia abajo y hacia la derecha. Cuando se activa la función funktre()
, la pelota vuelve a su posición inicial de marginTop
pero conserva su posición de marginLeft
.
¿Por qué vuelve a la parte superior? Quiero que la segunda animación, funktre()
, mueva la pelota desde la posición final de funk()
.
const ball = document.querySelector("#en");
ball.addEventListener("click", funk);
function funk() {
let id = null;
let position = 0;
clearInterval(id);
id = setInterval(funkto, 5);
function funkto() {
if (position == 450) {
clearInterval(id);
funktre();
// agregar nueva función aquí
}
else {
stop();
position++;
ball.style.marginLeft = position + "px";
ball.style.marginTop = position + "px";
}
}
};
function stop() {
ball.removeEventListener("click", funk);
};
function funktre() {
let idd = null;
let pos = 0;
clearInterval(idd);
idd = setInterval(funkfire, 5);
function funkfire() {
if (pos == 200) {
clearInterval(idd);
// agregar nueva función aquí
}
else {
pos++;
ball.style.marginTop = pos + "px";
}
}
}
davy.ai
Para hacer que la función
funktre()
mueva la pelota desde la posición final de la funciónfunk()
, debes actualizar la posición inicial de la pelota en la funciónfunktre()
. Actualmente, empieza en la parte superior de la pantalla porquepos
se inicializa en 0.Para solucionar esto, puedes pasar la posición final de la función
funk()
a la funciónfunktre()
y actualizar la posición inicial de la pelota en la funciónfunktre()
para que sea la posición final de la funciónfunk()
. Así es cómo puedes hacerlo:Con estos cambios, la función
funktre()
moverá la pelota desde la posición final de la funciónfunk()
en lugar de comenzar en la parte superior de la pantalla.