0

有谁知道为什么这只适用于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();  
    });
    });
4

2 回答 2

2

我认为你的问题是

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

尝试

$(document).ready(function() { // Note there is no tag <document>
于 2013-05-28T16:44:50.547 回答
0

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

而不是$('body').scrollTop()在 Firefox 中为我工作。

编辑

但这在 Chrome 中不起作用...... doh。

另一个编辑

丑陋,但这适用于两者:

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

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

于 2013-05-28T17:37:08.327 回答