Анимация jQuery слева не сработает после анимации div справа - PullRequest
1 голос
/ 16 июня 2019

Итак, я сделал простую анимацию в jquery, где я анимирую два ряда изображений, нажимая стрелки влево / вправо, которые перемещают их влево или вправо.Теперь проблема странная, когда я нажимаю на стрелку вправо после загрузки, анимация работает нормально, а div с изображениями анимируется вправо и возвращается в исходное положение.Но когда я сразу после этого пытаюсь нажать на левую стрелку, изображения не будут анимироваться влево.Однако, если я нажимаю стрелку влево, а затем вправо, анимация работает достаточно хорошо.Так что в основном после анимации вправо нет поворота назад и стрелка влево не работает.

Я не уверен, в чем может быть проблема, но я попытался анимировать разные элементы одинаково и заметил, что я не могу анимировать элемент слева после анимации вправо (ивозвращение в исходное положение).Я был бы признателен, если бы вы могли помочь мне с этим, я все еще довольно новичок в jQuery, так что я мог бы совершить глупую ошибку, не заметив.* Я пробовал много разных вещей, ранее я думал, что проблема в том, что после окончания анимации я переключаю порядок первого и последнего изображения в строке, но даже после удаления этой части анимация все еще не 'не работает должным образом.Я попытался переключить порядок функций и поместить все это в одну функцию, но это не помогло.

var distance = $('.first-row').children().last().outerWidth();
var images = $('.img-item');

$('.arrow-right').click(function(){
    images.animate({left: distance},400, function(){
        images.css('left', '0px'); 
    });
});


$('.arrow-left').click(function(){
    images.animate({right: distance},400, function(){
        images.css('right', '0px');
    });
});

1 Ответ

0 голосов
/ 16 июня 2019

css "right" не означает получить координаты элемента в нескольких пикселях справа, но он считается справа налево, поэтому вправо: 0px;находится в правой части экрана.слева: 0px;Это в левой части экрана.Так что, если вы дали элементу css right свойство, left не будет иметь никакого эффекта.Попробуйте: для левого клика:

images.animate({left: '+=' + distance}, 400)

или для правого клика:

images.animate({left: '-=' + distance}, 400)

Я надеюсь, что помог вам.

...