jquery $(window).scroll功能在移动的上不起作用

ldxq2e6h  于 2022-12-03  发布在  jQuery
关注(0)|答案(1)|浏览(365)

我正在使用一个$(窗口)。滚动事件触发功能在我的网站上,一切都很好,只是它不工作的移动的设备。
这是我正在使用的代码:

$(window).scroll(function(){
    var wh =  $(window).height();
    var scrolledFromtop = $(window).scrollTop();
    if( scrolledFromtop > wh ){

        $('html').addClass('scrolled');
    }else{
        $('html').removeClass('scrolled');
    }
});

我也尝试了以下代码,但没有成功:

document.addEventListener("touchmove",aaa, false);
function aaa(){
    var wh =  $(window).height();
    var scrolledFromtop = $(window).scrollTop();
    if( scrolledFromtop > (wh) ){           
    $('html').addClass('scrolled');
    }

    else {
        $('html').removeClass('scrolled');
    }

};

有人能帮我吗?

jei2mxaa

jei2mxaa1#

某些(?)移动的浏览器只是在卷动完全停止之前,不会引发事件。
您可以尝试以下几种方法来解决此问题:
1.使用设置间隔
1.使用触摸事件
1.另一个解决方案是完全禁用本机滚动,而是使用JavaScript来模拟滚动。
$('window').on('touchmove', function(event) { //Prevent the window from being scrolled. event.preventDefault();

//Do something like call window.scrollTo to mimic the scrolling
   //request the user made.
});

你可以找到更多关于这一点,在这篇伟大的文章:
http://tjvantoll.com/2012/08/19/onscroll-event-issues-on-mobile-browsers/

相关问题