2016-03-20 18 views
0

Slayt gösterisi yazıyorum. Sonunda sadece bir slayt göstermek için iyi bir işleve sahibim. Tam olarak bir süre beklediğim shoSlide ile istediğimi gösterir ve sonra slaydı saklar. Hayır, bir slayt için bu kadar iyi olduğum için, benim sorunum pek çok şey için yapıyor. Jquery Sıra Fonksiyonu

function slideShow() { 
    console.log("countdown Slide Count: " + numberOfSlides); 

    console.log("Current slide number: " + jslideNumber); 

    $('#slide' + jslideNumber).fadeIn(1000).delay(5000).queue(function (next) { 
     console.log("Hiding Slide Number: " + jslideNumber); 
     $('#slide' + jslideNumber).fadeOut(1000); 
     next(); 
    }); 
} 

slideShow(); 

bir süre döngüye koyarak ancak WHILE kullanılarak, döngü veya sonsuz sayacında sonuçlar için çalışmıştır. Önceden jslideNumber ++ 'ı arttırıyordum ama problem, döngünün tezgâhın kuyruktan daha hızlı artmasıdır. Dolayısıyla, Slide1 gösterildiğinde, normalde Slide1 gizlenmelidir, ancak bunun yerine, Slide1 gösterilir ve gecikme sayacı yakaladığı zaman Slide6'yı gizlemeye çalışır.

cevap

0

Sen "[id^=slide]" seçici, $.map(),

var n = 150; 
 

 
$.map(Array(n), function(val, index) { 
 
    $("body").append("<div id=slide"+index+">"+index+"</div>") 
 
}) 
 

 
$({}).queue("_fx", $.map($("[id^=slide]"), function(el) { 
 
    return function(next) { 
 
    $(el).fadeIn(1000, function() { 
 
     $(this).delay(5000).fadeOut(1000, next) 
 
    }) 
 
    } 
 
})).dequeue("_fx")
[id^="slide"] { 
 
    display:none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> 
 
</script>

+0

.dequeue() hiçbir kodu yeniden yazım kullanabilirsiniz. Kinda aradığım şey değildi. 100'lü slaytlar olabilir, bu yüzden bunu böyle yapmalıyım. – FunnyGirl

+0

@FunnyGirl Güncellenmiş gönderiye bakın, animasyonu '.fadeIn()', '.fadeOut()' olarak ayarlayın; '[id^slide]', kimliğin "slide" ile başladığı tüm öğeleri seçer; '$ .map()' yinelemek '[id^slide]' elemanları, bir veya yüzlerce, mevcut animasyonun 'next' animesini aramadan önce tamamlanmasını bekler – guest271314

+0

@FunnyGirl Ayrıca tüm animasyonlar tamamlandığında öğenin 0'daki animasyonunu yeniden başlatabilirsiniz , "sonsuz" döngü oluşturmak için – guest271314