Я делаю маленькую карусель с пейджером. Карусель отображает элементы 6 на 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 -6, а не 30. Я мог бы с этим справиться, если (index < 0) ...
, но я предпочел бы состояние с по модулю, что лучше всего захватить поведение обертывания.
Как это сделать, чтобы обернуть (см. 2-я строка)?
_ «И это терпит неудачу, потому что -6% 36 - это -6, а не 30.» _ - тогда добавьте еще 36 (так что '+ 30' с вычитанием 6 за один шаг уже), прежде чем выполнять модульное div ... – CBroe
@CBroe Да на самом деле это эквивалентно тому, что я имел в виду (см. мой ответ) –
'imgIndex = ((imgIndex - 6) + 36)% 36;' который является '(imgIndex + 30)% 36', хотя это труднее читать. – Orbling