私はポケットベルで小さなカルーセルをやっています。カルーセルには要素が 6 つずつ表示され、表示する要素は 36 あります。次と前のボタンがあります。表示される最初の要素は [0, 6] です。前のボタンを押したときに前の要素がない場合 (たとえば、最初のページにいる場合)、ラップアラウンドして最後に移動する必要があります。同じことが最後の要素と次のボタンにも当てはまります。
私のコードは次のようになります。
$('#img_prev').click(function (e) {
# change this line so it wraps around
imgIndex = (imgIndex - 6) % 36;
alert(imgIndex)
refreshImages(imgIndex);
e.preventDefault();
return false;
});
$('#img_next').click(function (e) {
imgIndex = (imgIndex + 6) % 36;
refreshImages(imgIndex);
e.preventDefault();
return false;
});
そして、-6 % 36 は 30 ではなく -6 であるため、惨めに失敗します。if で処理できます(index < 0) ...
が、ラッピング動作を最もよく捉えるモジュロを使用した条件を好みます。
これを折り返すにはどうすればよいですか (2 行目を参照)。