Pregunta

$(this).css("left","100px");

function endless(){
    $(this).animate({
        left:'-=100px',
    },{
        easing: "linear",
    duration: 5000,
    complete: function() {
        $(this).css('left','100px');
    endless();
        }
    });
};
endless();

Esto es lo que intenté, pero con este enfoque no puedo hacer que las cosas se muevan.    Estoy usando jQuery 1.3.2.    ¿Alguna sugerencia?

¿Fue útil?

Solución

Tienes los parámetros para animar mal. No se necesita un hash de opciones, solo las opciones reales para facilitar, la duración y una devolución de llamada. Además, debe tener cuidado al usar this . Es mejor pasarlo como un argumento a la función sin fin.

$(this).css("left","100px");

function endless(elem){
    $(elem).animate(
        { left:'-=100px' },
        "linear",
        5000,
        function() {
            $(elem).css('left','100px');
            endless(elem);
        }
     );
};
endless(this);

Otros consejos

Tendrá que llamar a endless () desde una devolución de llamada.

function endless(item) {
  $(item).animate({"left": "-=100px"}, 5000, "linear", function(){
    $(item).css("left","100px");
    endless(item);
  });
}

endless($(".myBox"));

Debe reemplazar $ (this) con el selector al elemento que desea animar.

¡Genial! esto es exactamente lo que busqué, pero ahora,

finalmente me di cuenta de cómo cambiarlo. con la siguiente función, llame a endless (0) para detener, y endless (1) para habilitar el bucle de animación.

//loop animation forever
//args: takes 1 to loop, 0 to stop
function endless(loop)
{ 
  //animate forever
  if (loop==1)
  {
 $('#alink').animate(
  {'opacity':'toggle'}, 
  1000, 
   function () { endless(1) }
  ); 
  }
  //stop animation
  else
  {
 $('#alink').css('opacity',1).stop();
  }

}; 


//sample call
$('#alink').toggle(function(){ endless(1) },function(){ endless(0) });

¡Gracias por el código inicial!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top