私が今まで見た中で最小のスライドショー。
$(function(){
$('.fadein img:gt(0)').hide();
setInterval(function(){
$('.fadein :first-child').fadeOut()
.next('img').fadeIn()
.end().appendTo('.fadein');},
3000);
});
彼がこの小さなコードを説明しているページを読んで、最後の方で彼は言います
「end()はjQueryの内部参照を元の選択にリセットします。そうすれば、next('img')ではなく.fadein要素の最後に追加するのは:first-childです。」
質問:スライドショー:first-child
の最後に、すべての画像を循環させた後、最初のスライド()をスライドショーの最後に追加する場合、スライドショーが2回目の反復を通過するときに、2番目のスライドはどこから取得されますか?スライドショーの最後に最初のスライドを追加すると、残りのスライドが追加されない場合にどのように機能するのか理解できないと思います。最後のスライドが表示された後、最初のスライドを最後に追加しますが、それが最後のスライドです。The end() resets jQuery's internal reference back to the original selection. That way, it's the :first-child that I'm appending to the end of the .fadein element and not the next('img').
最初のスライド()のみを追加したので、何もありません:first-child
。明らかにそれは機能するので、誰かが私がこれを理解するのを手伝ったり、これを理解するための情報源を推薦したりできますか?
編集:また、クロスフェードは最良のことではありませんか?新しい画像をフェードインしてから、最後の画像を非表示にしたほうがいいのではないでしょうか。何らかの理由で、クロスフェードが混乱し、一部のブラウザで白い背景が表示される可能性がありますか?