2013-05-28 3 views
0

est-ce que quelqu'un sait pourquoi cela fonctionne uniquement sur chrome. Il s'agit essentiellement d'un code qui place la barre de navigation dans le haut lorsque vous faites défiler vers le bas par la classe nav-fixed. et la fonction fix_top_bar est un moyen de centrer la barre qui est créée.Fonctionne pour Google Chrome mais pas pour Firefox et IE

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(); 
    }); 
    }); 
+0

Pourquoi avez-vous besoin de le faire js ? – Gabe

+0

et que se passe-t-il réellement dans FF? –

+0

@gabe http://stackoverflow.com/questions/16789256/javascript-getting-width-of-browser-and-width-of-element C'est un tout autre thread que j'avais si vous voulez vraiment y jeter un coup d'œil. – madmanali93

Répondre

0

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

au lieu de $('body').scrollTop() fonctionne pour moi dans Firefox.

Modifier

Mais cela ne fonctionne pas dans Chrome ... doh.

Une autre modification

laid, mais cela fonctionne aussi bien:

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

Il doit y avoir une meilleure solution cross-browser ...

+0

ok donc html fonctionne pour firefox et le corps fonctionne pour html mais ces deux lignes que vous avez donné ne semblent pas fonctionner sur les deux. – madmanali93

+0

Voici le violon qui semble fonctionner pour moi à la fois FF et Chrome http://jsfiddle.net/qHN2x/ –

+0

cela fonctionne maintenant. tant que cela fonctionne pour moi im fine. Je vous remercie! – madmanali93

2

Je pense que votre problème est

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

Essayez

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

Pourquoi cela fonctionne-t-il dans Chrome? –

+0

ne l'a pas réparé. Des pensées? – madmanali93

+0

@ madmanali93 pouvez-vous montrer CSS dans votre code .. aussi une démo de travail de votre problème sur jsfiddle.net ou jsbin.com sera utile aussi .. –

Questions connexes