document.body scrollTop在chrome中返回0但在firefox中没有

时间:2015-01-16 09:43:17

标签: javascript jquery google-chrome fixed scrolltop

我知道已有关于此问题的主题,但所有解决方案对我都没有用。

我希望在用户滚动时将我的菜单固定在页面顶部。

我找到了一个脚本并根据我的需要进行了调整:

var win         = $(document.body);
var fxel        = $('#stickynav');
var eloffset    = $('#stickynav').offset().top;
console.log(win.scrollTop());

win.scroll(function() {

    if (eloffset < win.scrollTop()) {
        console.log('fixed');
        fxel.addClass("fixed");
    } else {
        console.log(eloffset + ' != ' + win.scrollTop());
        fxel.removeClass("fixed");
    }
});

它正在使用firefox和IE8而不是chrome,win.scrollTop()总是返回0。

我尝试了所有内容win = $(document)$(window)$('body, html'),并且它始终返回0或无效。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

我在我的一个项目中使用它,它可能适合你。

//window events
$(window).on('scroll', function(){
    that = $(this); 
    if(that.scrollTop()>break_point){
        //YOUR CODE
    }
});

<强>更新

我为解决你的问题而努力。 首先尝试更新你的jQuery,如果问题仍然存在,请尝试使用: 我已经在你的页面上测试了它,它似乎工作正常。

    $(window).on('scroll', function(){
        that = $(this);
        //because you are wrapping all contents
        var offsetTop = Math.abs($('.wrapper-1').offset().top);

        if(offsetTop>break_point){
            //CODE HERE
        }
    });

老实说希望它有效。干杯