jQueryのスライドショーを実行していて、画像をプリロードしてから別の配列に追加します。ただし、スライドショーを正しく機能させる必要があります。私はフィドルリンクを含めました:http://jsfiddle.net/z6qkH/。
それで、あなたは何が悪いのかと尋ねるかもしれません、スライドショーは機能しますか?はい、しかし私はそれを最適にする必要があります。なぜなら今はいくつかのループの問題のためにほとんどクラッシュするからですか?foreachループの後にSlideShow()関数を実行していますが(私は思っていました)、開始時に大きな遅延が発生するため、これは機能しません。このメソッドを最初からやり直したい。これにはforループを使用する必要がありますか?
var img_load = new Array();
img_load[0] = 'http://img.youtube.com/vi/KobO2FZYMtA/mqdefault.jpg';
img_load[1] = 'http://img.youtube.com/vi/6FjdbO-CGC4/mqdefault.jpg';
img_load[2] = 'http://img.youtube.com/vi/h-_cN3_zGuI/mqdefault.jpg';
img_load[3] = 'http://img.youtube.com/vi/rPf0CTptt8o/mqdefault.jpg';
/**
* Foreach loop
*/
function SlideShow()
{
$.each(img_load, function(i, val) {
$("#sImage").animate({opacity: 0.0}, 1000);
/**
* Queue function will place the event in queue
* Changing image src after the above animate function is completed
*/
$("#sImage").queue(function(){
$("#sImage").attr("src", val);
$("#sImage").dequeue();
});
$("#sImage").attr("src", val).animate({opacity: 1.0}, 1000);
/**
* Queue function will place the event in queue
* Here, queue function is used to hold the changing image for 1 second display
*/
$("#sImage").queue(function(){
setTimeout(function(){
$("#sImage").dequeue();
}, 1000);
});
});
SlideShow(); // Not good for some reason. I want to loop from start
}