悬停时检测scrollTop()(手持设备)

时间:2016-10-11 13:47:24

标签: android jquery ios scroll scrolltop

我正在使用jQuery的scrollTop()来获取固定菜单:

function fixed_menu(){

    if( $('window').width() < 770 )
    {
        var menu = $('.col-left.sidebar');
        var offset = menu.offset();
        var trigger = offset.top;

        $(document).scroll(function(e){
            if($('body').scrollTop() >= trigger){
                menu.addClass('fixed');
            } else if ($('body').scrollTop() < trigger){
                menu.removeClass('fixed');
            }
        });
    }

}
fixed_menu();

当我在自己的手机(Android设备,Moto G 2nd gen)上测试时,if语句在滚动时仍然有效。

当我在iPad mini上进行测试时,if语句仅在悬停完成时启动。

如果悬停仍在进行中,如何才能使此功能在某些iOS设备上运行?

1 个答案:

答案 0 :(得分:3)

scrollTop()功能在不同浏览器中存在问题。您可以尝试使用$('html, body').scrollTop()$(window).scroll()

function fixed_menu(){
    if( $('window').width() < 770 ){
        var menu = $('.col-left.sidebar');
        var offset = menu.offset();
        var trigger = offset.top;

        $(window).scroll(function(e){
            if($('html, body').scrollTop() >= trigger){
                menu.addClass('fixed');
            } else if ($('html, body').scrollTop() < trigger){
                menu.removeClass('fixed');
            }
        });
    }
}
fixed_menu();