2012-07-09 23 views
6

İçinde görüntü bulunan tek bir div ile çalışıyorum. Animasyona, sayfanın sağ-solundan ilerlemek ve sonra sağa dönüp bir döngüye devam etmek için ihtiyacım var. Burada birçok gönderiye baktım ama betiğin düzgün çalışmasını sağlayamıyorum.Nasıl döngü verilir JQuery

'$(document).ready(function(){ 
    function loop() { 

     $('#clouds').animate({left: '+=1400',},50000, 'linear', function(){ 
      loop(); 
     }); 

HTML

< div id="clouds">< img border="0" alt="animated clouds" src="/images/clouds.png" />< /div> 

CSS

#clouds { 
    position:absolute; 
    z-index:500; 
    right:0px; 
    top:10px; 
} 
+2

' '' senin jQuery başında kasıtlı mı? – SomeKittens

+0

Hayır değildi. Tam olarak göz şeker olmayan bir içerik yönetim sistemi üzerinde çalışıyorum. Ancak, eklenmeden 'hala düzgün çalışmıyor. – ac12

cevap

16

bu deneyin:

JSFiddlehttp://jsfiddle.net/2YqH2/

Sen sağ tarafa geri bulutları hareket etmiyorlar. Döngü işlevinin içinde,

$('#clouds').css({right:0}); 

ekledim ve döngü oradan devam edecek. Animasyonunuzu "sağa" özelliği canlandırmak için değiştirdim, çünkü bulutların sağdan sola doğru hareket etmesini istediniz.

Ayrıca, javascript iyi biçimli değildi. Kapanış parantezlerini ve parantezleri aldığınızdan emin olun! İşte sabit javascript.

$(document).ready(function() { 
    function loop() { 
     $('#clouds').css({right:0}); 
     $('#clouds').animate ({ 
      right: '+=1400', 
     }, 5000, 'linear', function() { 
      loop(); 
     }); 
    } 
    loop(); 
}); 
+0

Bunu çok takdir ediyorum! Stajdayım ve genellikle yanıtlanmış birçok soru için stackoverflow'a geldim. Böyle büyük tepki süresi ve benim gibi bir noob için nezaket beklemiyordum. “Doğrusal” nun dalgalı hareketi azalttığını okuduğum ile ilgili son bir soru var ama başka bir yol var mı? Onu 50000'e kadar çarptı ama hala zor. – ac12

+0

Birden fazla div ile bir örnek gönderebilirseniz, aynı zamanda harika olurdu. Önceden teşekkürler, bunu takdir ediyorum! – ac12

0

JAVASCRIPT:

$(document).ready(function() { 

    $('#clouds').click(function() { 
loop();  
    }); 

function loop(){ 
    alert('a'); 
     $('#clouds').animate({ 
      opacity: 0.25, 
      left: '+=1400', 
      height: 'toggle' 
     }, 5000, 'linear', function() { 
      loop(); 
     }); 

} 

}); 

HTML:

<div id="clouds"><img border="0" alt="animated clouds" src="../img/image.png" /></div> 

Hatanız, işlev döngüsünü hiçbir zaman çağırmamanızdır. nasıl it works, bakmak alert('a') kaldırabilirsiniz, çünkü döngü yeniden başladığını bilmek için bir bayrak. şimdi geri hareketi yapmalısınız (hareket döngüsünü başlatmak için div sıfırlama gibi).

+0

İş yerindeki bir içerik yönetim sistemi üzerinde çalışıyorum ve JQuery içe aktarılıyor. Yukarıdaki senaryoyu denedim ve hala hareket yok. Ayrıca // Animasyon tamamlandı ancak şanssız kaldığında da işlevi tekrar çağırmayı denedim. – ac12

+0

Firebug kullanabilir ve bize javascript hata mesajını söyleyebilir misiniz? – jcho360

+0

Hata yok. – ac12