Из других замечательных разговоров, которые я прочитал, у меня сложилось впечатление, что обещания jQuery не очень хорошо справляются с задержками или ожиданиями, которые я ищу. И, честно говоря, решения, которые они выдвинули, были немного над моей головой в данный момент.
Тогда я понял ...
То, что я получил, не было таким уж обещаниемзадержка, а скорее способ как-то ПОКАЗАТЬ анимацию «slideLeft ()».
И вот, когда меня это поразило! Вместо того чтобы пытаться использовать превосходную функцию janu .animate (), я создал отдельные классы изображений с различными трехмерными матрицами преобразования.
Это позволило мне сначала начать последующее выделение изображений справа, а затем, в рамках исходного действия .done (), центрировать изображение, создавая тем самым эффект, который я получил после.
Вот scss, который я использовал
-webkit-transition: all 400ms ease;
-moz-transition: all 400ms ease;
-o-transition: all 400ms ease;
transition: all 400ms ease;
&.out-right {
transform: matrix3d(
1,0,0,0,
0,1,0,0,
0,0,1,0,
800,0,0,1
);
}
&.active {
transform: matrix3d(
1,0,0,0,
0,1,0,0,
0,0,1,0,
0,0,0,1
);
}
&.out-left {
transform: matrix3d(
1,0,0,0,
0,1,0,0,
0,0,1,0,
-800,0,0,1
);
}
Вот как я изменил оригиналдо начальной структуры класса для изображений. Это выглядело примерно так
<div class="highlight">
<%= image_tag tag.images.first.file_url(:speck),
class: "active",
...
%>
</div>
<% tag.images.drop(1).each do |image| %>
<div class="highlight">
<%= image_tag image.file_url(:speck),
class: "out-right",
...
%>
</div>
<% end %>
Так что, если кто-то еще ищет способ включить анимацию в обещание jQuery и сталкивается с теми же проблемами, с которыми я столкнулся, возможно, рассмотрение этого будет под другим углом. дать результат, который вам нужен?
PS: я не показывал, как я «сбрасываю» состояния классов изображений при циклическом их просмотре, но если вам нужно это опубликовать, не стесняйтесь запросить его, и яподелюсь с чем придумала.