@webmak

Swiper.js, почему не работает событие touchMoveOpposite?

Всем привет! Есть слайдер на плагине Swiper, он движется свободно, без фиксированных позиций, то есть своеобразная лента с элементами, которая все время в движении. Этот слайдер можно свайпать, двигать. Если её подвинуть, то через какое-то время она пойдёт опять с выставленной скоростью в заданном направлении. Мне нужно, чтобы при свайпе влево, данный слайдер поменял своё направление движения (сейчас он у меня движется только влево)
Что в коде: через консоль проверил событие touchMoveOpposite и нечего не происходит.
$(document).ready(function () {
	if ($(".swiper-container1").length > 0) {
		var swiper = new Swiper('.swiper-container1', {
			slidesPerView: 8,
			loop: true,
			grabCursor: true,
			autoplay: {
				delay: 0,
				disableOnInteraction: false
			},
			speed: 7000,
		});
	}
	swiper.on('touchMoveOpposite', (event) => { 
		console.log('Work1')
	})
});

Ссылка на сайт со слайдером:
test-daiger.slk-portfolio.mcdir.ru
  • Вопрос задан
  • 815 просмотров
Решения вопроса 1
Athanor
@Athanor
Лайк + Решение: не жмись, нажми
Скорее всего, чтоб осуществить задуманное вам стоит воспользоваться комбинацией событий touchStart и touchEnd. Будет выглядеть это как-то так:

$(document).ready(function() {
  if ($(".swiper-container1").length > 0) {
    var startMoveEvent;
    var swiper = new Swiper(".swiper-container1", {
      slidesPerView: 8,
      loop: true,
      autoplay: {
        delay: 0,
        disableOnInteraction: false
      },
      speed: 7000
    });
    swiper.on("touchStart", event => {
      startMoveEvent = event;
    });
    swiper.on("touchEnd", event => {
      var sliderMovedToLeft = event.offsetX - startMoveEvent.offsetX < 0;
      console.log("sliderMovedToLeft", sliderMovedToLeft);
    });
  }
}


DEMO
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы