@b4rret

Как запустить autoplay только при наведении на блок, в swiper'e?

Необходимо по hover'у на контейнер запускать autoplay слайдера swiper
Сделал следующее, но сразу после загрузки слайдер начинает воспроизведение, а если не задавать в конфигурации autoplay, то ругается на неизвестные функции slider.autoplay.start/stop

var swiper = new Swiper ('.swiper-container', {
			slidesPerView: 'auto',
			centeredSlides: true,
			allowTouchMove: true,
			touchReleaseOnEdges: true,
			autoplay: {
				delay: 1000,
				stopOnLast: true
			}
			on: {
				init: function() {
					var slider = this;
					$('.block').mouseenter(function() {
						slider.autoplay.start();
					}).mouseleave(function() {
						slider.autoplay.stop();
					});
			}
		});
  • Вопрос задан
  • 2772 просмотра
Решения вопроса 1
@b4rret Автор вопроса
В общем, вызвал slider.autoplay.stop(); уже после объявления слайдера. В init'e slider.autoplay.running === false, после объявления слайдера становится true. Скорей всего autoplay вызывается после init'a слайдера
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
ShadowOfCasper
@ShadowOfCasper
Middle User Interface Web Developer
Попробуй так. В параметрах autplay оставь
init: function() {
          var slider = this;
          slider.autoplay.stop();
          $('.block').mouseenter(function() {
            slider.autoplay.start();
          }).mouseleave(function() {
            slider.autoplay.stop();
          });
Ответ написан
zerxx
@zerxx
Отключать надо в afterInit

afterInit: (swiper) => {
  swiper.autoplay.stop(); 
},
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы