Как поставить анимацию в CSS3, когда она отображается после прокрутки страницы (предоставляется JSFiddle)

0

JSFIDDLE: http://jsfiddle.net/mh7e8/1/

У меня есть 3 изображения. Я хочу добавить класс .animation чтобы они отображались с отскоком:

<div class="row">
  <div class="col-sm-4 steps">
  <img src="./s3/img/sprite-circle-1.png" class="step-1 bounceIn">
  </div>

  <div class="col-sm-4 steps">
  <img src="./s3/img/sprite-circle-2.png" class="step-2 bounceIn">
  </div>

  <div class="col-sm-4 steps">
  <img src="./s3/img/sprite-circle-3.png" class="step-3 bounceIn">
  </div>
</div>

У меня уже есть очень приятная (рабочая) анимация CSS3:

.animated.bounceIn{
// code: see JSFIDDLE - http://jsfiddle.net/mh7e8/1/ for detail
}

Я хочу, чтобы класс применялся к каждому изображению с 1-секундной задержкой между ними, когда первое изображение загружается на экран.

У меня есть код, чтобы определить, когда элемент виден (работает):

(function ($) {

    $.fn.isVisible = function (partial, hidden, direction) {

 // working code: see JSFIDDLE - http://jsfiddle.net/mh7e8/1/ for detail


})(jQuery);
$(function () {

    var $bounceIn = $('.step-1');
    var testVis = function () {
        $bounceIn.each(function () {
            if ($(this).isVisible()) {
                console.log("step-1 visible");
            }

});
};

$(window).on('scroll resize', testVis);
testVis();
});

Там, где я боюсь, нужно найти, как последовательно откладывать каждую анимацию. Применение задержки к переходу CSS, похоже, не вызывает последовательного поведения по сравнению с браузерами (например, шаг 2 может загрузить до шага 1). Как я могу поставить очередь в jQuery?

1 ответ

0
Лучший ответ

Вы можете определить анимацию CSS и прикрепить их к определенным классам.

CSS

.slideUp {
  animation: slide-up 1500ms ease;
}

Jquery

/* these are the classes you want to animate */
toAnimate = ['step1', 'step2', 'step3']

/* iterate over this array and apply the *slideup* class */
$.each(toAnimate, function(i, class) {
  window.timeout(function {
    $('.parent').find(class).addClass('slideUp')
  }, i*1000);
}

Теперь просто используйте jQuery для добавления этих классов к элементам в соответствующие моменты времени (например, с задержкой в 1 секунду, добавьте класс .slideUp к четырем изображениям и т.д.),

  • 0
    Чтобы иметь дополнительные задержки для каждого изображения, @ alias51 может установить свойство animation-delay индивидуально через .css() перед добавлением класса .animate .
  • 0
    @kumar Да ... это была бы суть вопроса! Как мне это сделать? :)
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню