JQuery - PARAR ANIMACION

 
Vista:
Imágen de perfil de Miguel Angel
Val: 4
Ha aumentado su posición en 6 puestos en JQuery (en relación al último mes)
Gráfica de JQuery

PARAR ANIMACION

Publicado por Miguel Angel (3 intervenciones) el 08/01/2017 12:25:21
Buenos días
Tengo una animación para un div que hace que se mueva de izquierda a derecha y de derecha a izquierda, que la he hecho con animate y al final añadiendo un callback, y funciona correctamente, pero ahora viene el siguiente ejercicio, que es que al clickar por segunda vez el div detenga la funcion, y esto no veo como hacerlo, ¿como obtengo el numero de clicks? que supongo que sera lo que tengo que hacer, os pongo el codigo y el enunciado de los ejercicios.
1- Al clicar encima de #movContinuo se mueva continuamente el elemento #divMobil de izquierda a derecha. Para conseguirlo utiliza la propiedad complete de animate para que una vez haya terminado la animación hacia la derecha, llame a una función que realize la animación a la izquierda.
CODIGO:
1
2
3
4
5
6
7
8
9
function mueveContinuo(){
    $("#divMobil").animate({
    "left":"+=50px"},{"duration":1000,
    "complete":function(){
    $(this).animate({
    "left":"-=50px"},1000,mueveContinuo);
    }
   });
}
Como digo, este codigo funciona correctamente, pero en el siguiente enunciado se pide que al hacer un segundo click sobre el mismo div se pare la animacion
2.- Al clicar por segunda vez sobre #movContinuo se detenga el movimiento #de divMobil con la función .stop( ).
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de elporfirio

PARAR ANIMACION

Publicado por elporfirio (14 intervenciones) el 09/01/2017 19:51:22
Hola para detener la animacion se utiliza

1
$("#divMobil").stop();

Sin embargo, depende del Evento que haya colocado en #movContinuo... ¿por que?

Por que imaginemos que detienes la animacion a la mitad, y la vuelves a empezar... Esta animación no se regresa al inicio. Si no que empieza a ejecutarse desde el punto que se quedo.


Es decir si solo se mueve 50 px, se movera otros 50px a partir del punto en el que se quedo.


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar