Как применить анимацию для активного слайда в Swiper.js с помощью Textillate.js?

Доброго времени суток.

Задача состоит в том, чтобы при смене слайда активному слайду применялась анимация появления текста. После того как слайд смениться и появится новый активный слайд, на нем также должна отработать та же анимация.

Как я пытался сделать: Повесить на событие swiper'а slideChange/transitionStart срабатываение анимации, но увы, такой подход не подошел, так как после того как анимация отработает, она перестает повторяться. Более того , выполняется только при переходе на второй слайд и только для второго слайда, дальше все слайды статичные.

Для анимации текста использовал Textillate.js , нашел нужный класс и повесил на него анимацию:

mySwiper.on('slideChange', function() { 

$(function () {
  $('.tlt').textillate({
    in: {
      effect: 'fadeInUp'
    },
    loop: false,
  });
});

Результат хочу получить примерно как на данном примере слайдера


Ответы (1 шт):

Автор решения: Fainor

Решил проблему следующим образом:

  1. Отключил автостарт у анимации.

  2. Когда происходит событие transitionStart (slideChange тоже подойдет) запускаю textillate('start') для необходимого блока

  3. В результате получаю вызов анимации при смене слайда.

    var $tlt = $(".tlt").textillate({ autoStart: false, in: { effect: "fadeInUp" },});

Данное объявление позволяет нам в дальнейшем обращаться к нужному блоку и запускать на нем анимацию

$(".tlt").textillate({


 in: {
    effect: "fadeInUp",
  },
    autoStart: true,
    loop: false,
});

Тут мы автоматически запускаем анимацию для первого слайда при загрузке страницы.

mySwiper.on("transitionStart", function () {
  $tlt.textillate("start");
  $(function () {
    $(".tlt").textillate({
      in: {
        effect: "fadeInUp",
      },
      autoStart: false,
      loop: false,
      initialDelay: 300,
    });
  });
});

Благодаря событию Swiper'a вызываем анимацию для каждого нового слайда.

→ Ссылка