私はこれに対するクリーンな解決策を考え出すのに苦労しています:
- カルーセルには7つのアイテムがあるため、0〜6です。
- インデックス3は真ん中のものです
- たとえば、2番目のアイテム(インデックス1)がクリックされた場合、各アイテムは2桁右に移動する必要があります。最後のアイテムがクリックされた場合(インデックス6)、左に3か所移動する必要があります。
function centerCarouselOn(index、callback){
var items = $('li'、カルーセル);
var middleIdx = Math.floor(items.length / 2);
var direction = null;
var iterCount = 0;
if(index === middleIdx)return;
if(index> middleIdx){
方向='左';
iterCount =(index-middleIdx);
}
そうしないと {
方向='右';
iterCount =(middleIdx-インデックス);
}
$('li'、カルーセル).each(function(k、v){
var li = $(v);
//ここでは、左または右にnか所を繰り返す必要があります
//例:
//方向=左、iterCount = 3
//次に、インデックスごとの各liには次のシーケンスが必要になります。
// 0:6、5、4
// 1:0、6、5
// 2:1、0、6
// 3:2、1、0
// 4:3、2、1
// 5:4、3、1
// 6:5、4、3(これは中央に移動します-インデックス3)
});
}