我正在使用touchmove
中的touchstart
,touchend
和JQuery Mobile
个函数。我尝试在touchstart
时禁用垂直滚动,并在触发touchend
时启用它。我尝试了一些事情:
将overflow: hidden
添加到正文这适用于Chrome浏览器,但不适用于firefox android
当touchstart
事件被触发并touched
被解雇时,将滚动事件绑定和取消绑定到正文 - 根本不起作用(我确定我做错了)。以下是代码。
代码:
$(document).on("touchstart", ".amount-container", function(event){
$(".notify-cart").addClass("show");
if(event.touches.length == event.changedTouches.length) {
monitor = {
x: event.touches[0].clientX,
y: event.touches[0].clientY
};
}
}).on("touchend", ".amount-container", function(){
$(".notify-cart").removeClass("show");
$("body").removeClass("overflowhide");
monitor = {};
}).on("touchmove mousemove", ".amount-container", function(event){
if(Math.abs(event.changedTouches[0].clientX - monitor.x) > Math.abs(event.changedTouches[0].clientY - monitor.y)) {
}
else{
event.preventDefault();
}
});
// To Prevent Scrolling while Swipe/touchmove
var touchScroll = function( event ) {
event.preventDefault();
};
我也尝试过其他一些东西。在Firefox中没有任何效果。有没有更好的方法来解决这个问题。如果您还有其他需要,请告诉我。
答案 0 :(得分:0)
我不肯定这会起作用,但请尝试替换
var touchScroll = function( event ) {
event.preventDefault();
};
与
document.body.addEventListener('touchstart', function(e){e.preventDefault();
});