Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Evento .animate() jQuery

Estas en el tema de Evento .animate() jQuery en el foro de Jquery en Foros del Web. Hola amigos foreros como están lo que hoy les traigo no es un problema en si, es una duda que me imagino que les habrá ...
  #1 (permalink)  
Antiguo 20/01/2015, 14:26
 
Fecha de Ingreso: noviembre-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 1
Evento .animate() jQuery

Hola amigos foreros como están lo que hoy les traigo no es un problema en si, es una duda que me imagino que les habrá pasado alguna vez, en la universidad el profesor nos mando un ejercicio sencillo de mover un div de un lado a otro utilizando la funcion .animate() de jQuery, la hice bien con unas pocas lineas que serían estas:

html:
<div id="mover">Hola</div>

jQuery:
$("#mover").animate({"left": "+47px"},"fast");

Ahora bien si esta función se utiliza en un evento OnClick en un div o botón o cualquier etiqueta, funciona bien pero al clickear supongamos 50 veces rapido esta etiqueta la animación se ejecutará 50 veces tarde lo que tenga que tardar.

Mi pregunta es como se puede hacer para evitar esa ejecución tantas veces, es decir si se coloca en evento OnMouseOver y uno le pasa muchas veces el mouse encima se ejecutará como loca y a nivel web no se ve bien, como se puede hacer para evitar esa ejecución tan al pie de la letra pos así decirlo.

Le pregunte ami profesor y no me supo responder, Saludos amigos
  #2 (permalink)  
Antiguo 20/01/2015, 14:39
Avatar de chulifo  
Fecha de Ingreso: abril-2009
Ubicación: perdido en codigos del PHP, pero aprendo rapido!
Mensajes: 524
Antigüedad: 15 años, 7 meses
Puntos: 18
Respuesta: Evento .animate() jQuery

Hola! Puedes probar con esto.
Código Javascript:
Ver original
  1. complete = 1;
  2. if(complete == 1){
  3. complete == 0;
  4. $( "#clickme" ).click(function() {
  5.   $( "#book" ).animate({"left": "+47px"}, "fast", function() {
  6.    complete = 1;
  7.   });
  8. });
  9. }
__________________
Solo soy un simple fanático que mata el tiempo de la mejor manera.
  #3 (permalink)  
Antiguo 20/01/2015, 16:20
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Evento .animate() jQuery

Utiliza el método stop.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 21/01/2015, 04:30
 
Fecha de Ingreso: agosto-2013
Ubicación: A Coruña
Mensajes: 54
Antigüedad: 11 años, 3 meses
Puntos: 14
Respuesta: Evento .animate() jQuery

Hola. La respuesta más rapida te la ha dado Alexis88. Con stop evitas que suceda esa cola de animaciones al clickear. Puedes verlo aqui si quieres:
[URL]http://jsfiddle.net/mgw6v70j/14/[/URL]
  #5 (permalink)  
Antiguo 21/01/2015, 09:24
 
Fecha de Ingreso: noviembre-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 1
Respuesta: Evento .animate() jQuery

Muchas gracias, de verdad me resolvieron esa duda, Chulifo tu código esta bien pero como dice Alexis88 es mas rápido con el .stop() y Martinmiranda90 muchas gracias por el ejemplo, más claro no pudo quedar. Saludos.

Etiquetas: evento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:01.