http://css-tricks.com/snippets/jquery/simple-auto-playing-slideshow/の指示に従って自動スライドショーを作成しました
js は次のようになります。
setInterval(function () {
$('#singleSlideshow #slideItem:first')
.fadeOut(1000)
.next()
.fadeIn(1000)
.end()
.appendTo('#singleSlideshow');
}, 3000);
これは、fadeIn/fadeOut する要素が 1 つだけのコンテンツ領域では問題なく機能します。たとえば、次のようになります。
<div id="slideShow">
<img src="www.pictures.com/somepic.png"/>
<img src="www.pictures.com/anotherpic.png"/>
<img src="www.pictures.com/theonepic.png"/>
</div>
しかし、構造化された要素を切り替える別のスライドショーがページに必要です。
<div id="newsItem">
<img class="newsImg" src="./somepic"/>
<div id="newsTitle">Testnews 1</div>
<div id="newsDate">01.01.2014</div>
<div id="newsText">this is the first news text...</div>
</div>
ここで見ることができます:http://jsfiddle.net/ehLdW/4/
---編集--- スクリプトのエラーを突き止めるために少し遊んでみました...逆の順序で動作するようにスクリプトを変更しました
setInterval(function () {
$('#singleSlideshow #slideItem:last')
.fadeOut(1000)
.prev()
.fadeIn(1000)
.end()
.prependTo('#singleSlideshow');
}, 3000);
問題は同じです。クロス フェード効果はありませんが、フェード アニメーションは 1 つしかありません。興味深いのは、元のバージョンでは新しい要素のfadeInトランジションのみが表示されたのに対し、逆順のバージョンでは現在の要素のfadeOutトランジションのみが表示されたことです。
そのため、要素の効果が常に表示されます。インデックスが高いほど、それを修正する方法についての手がかりがありません...