Javascript 触摸结束后,是否有任何事件可以在iOS设备上使用jQuery检测动量滚动?

Javascript 触摸结束后,是否有任何事件可以在iOS设备上使用jQuery检测动量滚动?,javascript,jquery,ios,iphone,ipad,Javascript,Jquery,Ios,Iphone,Ipad,我想在滚动事件期间切换底部的菜单。因此,我创建了一个固定菜单,根据其从顶部的位置显示/隐藏。该事件当前仅在触摸期间触发。从设备上取下手指后,当网页滚动时,是否有方法触发事件?滚动事件在android设备上运行良好 function toggleMenu() { if ($('.menu').offset().top < $('.fixed-menu').offset().top + 32) { $('.fixed-menu').css

我想在滚动事件期间切换底部的菜单。因此,我创建了一个固定菜单,根据其从顶部的位置显示/隐藏。该事件当前仅在触摸期间触发。从设备上取下手指后,当网页滚动时,是否有方法触发事件?滚动事件在android设备上运行良好

function toggleMenu() {
            if ($('.menu').offset().top < $('.fixed-menu').offset().top + 32) {
                $('.fixed-menu').css('visibility', 'hidden');
            } else {
                $('.fixed-menu').css('visibility', 'visible');
            }
        }

 $(window).on("load resize scroll touchstart touchmove touchend", function (e) {
      toggleMenu();
});


html, body {
    height: 100%;
    -webkit-overflow-scrolling: touch;
    overflow-y: scroll;
}
功能切换菜单(){
if($('.menu').offset().top<$('.fixed menu').offset().top+32){
$('.fixed menu').css('可见性','隐藏');
}否则{
$('.fixed menu').css('可见性','可见');
}
}
$(窗口)。打开(“加载调整大小滚动触摸开始触摸移动触摸结束”,功能(e){
切换菜单();
});
html,正文{
身高:100%;
-webkit溢出滚动:触摸;
溢出y:滚动;
}

当您收听
touchstart
touchmove
touchend
时,它当然也会在触摸时触发。我可能会尝试只在
滚动时触发它,并添加一些超时来查看滚动是否停止

$(document).on("scroll", function() {
    var position = $(document).scrollTop();
    hideMenu();
    setTimeout(function() {
        if (position == $(document).scrollTop())
            // We have stopped scrolling
            showMenu();
    }, 100); 
});

谢谢,滚动停止后,条件现在开始工作。但是,在Safari iOS中,在运动过程中,它仍然不会触发。@Rahul我没有可测试的设备,但对于iOS,您似乎必须添加
.on(“滚动触摸移动”)
,就像您在原始帖子中所做的那样。(请参阅)正如您在上面提到的参考链接中所述,似乎此事件仅在用户主动滚动时触发,而不是在动量滚动的减速阶段触发。@Rahul我将其解释为,
touchmove
在触摸滚动时触发,而
scroll
在减速阶段触发,否?您已经正确地解释了,scroll事件在减速阶段可以与其他设备一起正常工作,但并不特别适用于ios设备。