Итак, я строю небольшую галерею в jQuery.
var picwidth = $('.gallery-window ul li').width();
var left1 = $('.gallery-window ul').position().left;
var length = $('.gallery-window ul li').length;
var picnum = 1;
Как видите, я сделал 4 переменные, первая из которых получает ширину изображения (поэтому мне не нужен отдельный код для каждого устройства, так как веб-сайт отзывчивый), вторая получает левую позицию ( проблемный ), третий получает количество изображений (так как будет более одной галереи такого типа), а последний - просто итерация.
Теперь код для кнопки «следующий» следующий:
$('.gallery-next').click(function() {
if (picnum === length) {
$('.gallery-window ul').css("left", "0px").animate({left: left1 -= picwidth}, 500);
picnum = 2;
}
else {
$('.gallery-window ul').animate({left: left1 -= picwidth}, 500);
picnum++;
}
console.log("number" + picnum);
console.log("position" + left1);
});
На основании двух журналов консоли, которые у меня есть в самом конце, проблема заключается в том, что свойство position
не возвращается к 0, когда выполняется условие "если". Не поймите меня неправильно, jQuery следует порядку свойств CSS и перемещает мой список обратно в начало, но свойство position остается в минусе.
Вот скопированная информация моего журнала консоли, надеюсь, вы понимаете, о чем я:
number2 position-320
number3 position-640
number4 position-960
number2 position-960
На данный момент из-за эффектов перехода 4 изображения, 3 обычных и 4-е, совпадают с первым. Но когда я нахожусь на 4-м и нажимаю «Далее», все выглядит хорошо, но мое свойство «position» остается на -960 . Поэтому, если после этого нажать кнопку «Далее», вместо того, чтобы снова перевести меня с 0 (где свойство css установило его) на -320, мгновенно поднимется до -1280 , что, разумеется, приводит к беспорядкам. до моей галереи.
Есть идеи, что может быть причиной, и как я могу это исправить?