Question

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

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

C'est ce que j'ai essayé, mais avec cette approche, je ne peux pas faire bouger les choses.    J'utilise jQuery 1.3.2.    Des suggestions?

Était-ce utile?

La solution

Vous avez les paramètres pour animer mal. Cela ne prend pas un hachage d’options, mais seulement les options réelles d’assouplissement, de durée et de rappel. De même, vous devez faire attention lorsque vous utilisez this . Mieux vaut le passer comme argument de la fonction sans fin.

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

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

Autres conseils

Vous devrez appeler endless () à partir d'un rappel.

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

endless($(".myBox"));

Vous devez remplacer $ (this) par le sélecteur d'élément que vous souhaitez animer.

Génial! c'est exactement ce que je cherchais, mais maintenant,

J'ai enfin compris comment le basculer. avec la fonction suivante, appelez sans fin (0) pour arrêter et sans fin (1) pour activer la boucle d’animation.

//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) });

merci pour le code initial!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top