Frage

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

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

Das ist, was ich versuchte, aber mit diesem Ansatz ich nicht Sachen in Bewegung bringen kann.    Im‘mit jQuery 1.3.2.    Irgendwelche Vorschläge?

War es hilfreich?

Lösung

Sie haben die Parameter falsch zu animieren. Sie stellen keine Optionen Hash nehmen, nur um die tatsächlichen Möglichkeiten für eine Lockerung, die Dauer und einen Rückruf. Außerdem müssen Sie darauf achten, wenn this verwenden. Besser als Argument an die endlosen Funktion zu übergeben in.

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

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

Andere Tipps

Sie müssen endlos () aufzurufen, aus einem Rückruf.

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

endless($(".myBox"));

Sie müssen $(this) mit dem Wähler zu Element ersetzen, die Sie animieren möchten.

Great! das ist genau das, was ich gesucht, aber jetzt,

Ich dachte schließlich, wie es zu wechseln. mit der folgenden Funktion, rufen Sie endlos (0) zu stoppen, und endlos (1) Animationsschleife zu ermöglichen.

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

Danke für die anfänglichen Code!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top