我有一个轮播,并希望在轮播上调用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中不起作用。另外,我也希望页面滚动在不再滑动时继续进行。