tympanus によるJQUERY を使用した循環型コンテンツ カルーセルに関する質問
これをWebプロジェクトに実装していますが、これまでのところ完全に機能しますが、ループを停止する必要があります/左右に複製し、最後の子または最初の子に到達するまでスクロールを停止します。基本的には、無限循環/ループ効果を取り除くことです。
ここはトリックを行うために変更する部分だと思いますが、ロジックが理解できないのは残念です。
助けてください!
下手な英語でごめんなさい、私はマレーシア出身です
// 右/左の要素を複製し、dir と scroll に従ってそれらを追加/先頭に追加します if( dir === 1 ) { $wrapper.find('div.ca-item:lt(' + scroll + ')').each(function(i) { $(this).clone(true).css( 'left', ( cache.totalItems - idxClicked + i ) * cache.itemW * factor + 'px' ).appendTo( $wrapper ); }); } そうしないと { var $first = $wrapper.children().eq(0);
$wrapper.find('div.ca-item:gt(' + ( cache.totalItems - 1 - scroll ) + ')').each(function(i) { // insert before $first so they stay in the right order $(this).clone(true).css( 'left', - ( scroll - i + idxClicked ) * cache.itemW * factor + 'px' ).insertBefore( $first ); }); } // animate the left of each item // the calculations are dependent on dir and on the cache.expanded value $wrapper.find('div.ca-item').each(function(i) { var $item = $(this); $item.stop().animate({ left : ( dir === 1 ) ? '-=' + ( cache.itemW * factor * scroll ) + 'px' : '+=' + ( cache.itemW * factor * scroll ) + 'px' }, opts.sliderSpeed, opts.sliderEasing, function() { if( ( dir === 1 && $item.position().left < - idxClicked * cache.itemW * factor ) || ( dir === -1 && $item.position().left > ( ( cache.totalItems - 1 - idxClicked ) * cache.itemW * factor ) ) ) { // remove the item that was cloned $item.remove(); } cache.isAnimating = false; }); });