适用于谷歌浏览器,但不适用于Firefox和IE浏览器

时间:2013-05-28 16:41:31

标签: javascript jquery

有谁知道为什么这只适用于chrome。它基本上是一个代码,当您通过导航固定类向下滚动时,会将导航栏捕捉到顶部。函数fix_top_bar是一种使创建的条中心的方法。

function fix_top_bar(){
    var barWidth = $('.nav-fixed').width();
    $('.nav-fixed').css({ 'left' : '50%', 'margin-left' : '-' + (barWidth/2 + 20) + 'px' });
}

$('document').ready(function() {
        $(window).scroll(function() {
            if ($('body').scrollTop() > 112) {

                $('nav').addClass('nav-fixed');
                fix_top_bar();                              
                }else{
                $('.nav-fixed').css({ 'left' : '', 'margin-left' : ''});
                $('nav').removeClass('nav-fixed');
            }
        });

    fix_top_bar();
    $(window).resize(function(){
          fix_top_bar();  
    });
    });

2 个答案:

答案 0 :(得分:2)

我认为你的问题是

$('document').ready(function() {

尝试

$(document).ready(function() { // Note there is no tag <document>

答案 1 :(得分:0)

if ($('html').scrollTop() > 112) {

在Firefox中,

而不是$('body').scrollTop()适合我。

修改

但这不适用于Chrome ... doh。

其他编辑

丑陋,但这适用于:

var scrollTop = Math.max($('body').scrollTop(), $('html').scrollTop());
if (scrollTop > 112) {

必须有一个更好的跨浏览器解决方案......