У меня есть карусель, и я хотел бы предотвратить прокрутку страницы, когда на карусели вызывается событие ontouchmove
, чтобы провести пальцем влево - вправо. Ниже приведен код, который обрабатывает считывание карусели.
move: function(event) {
var self = this;
self.pageX = event.targetTouches[0].pageX;
self.pageY = event.targetTouches[0].pageY;
self.swipeLengthX = self.touchstartx - self.pageX;
self.swipeLengthY = self.pageY - self.touchstarty;
self.movex = self.index * slideWidth + (self.swipeLengthX);
if (Math.abs(self.swipeLengthX) > Math.abs(self.swipeLengthY) && Math.abs(self.swipeLengthX) > 50) {
document.addEventListener('touchmove', function(event) {
elem.addClass('carousel-animate')
.css('transform','translate3d(-' + self.movex + 'px, 0px, 0px');
$('body').addClass('no-scroll');
$('.no-scroll').on('touchmove', function (event) {
event.preventDefault();
}, false);
});
}
},
...
Как видите, я добавляю класс no-scroll
к элементу body
, а затем пытаюсь предотвратить дефолт, если карусель проведена.Но это не работает в iOS.Кроме того, я хотел бы, чтобы прокрутка страницы продолжалась, когда она больше не выполняется.