2010-08-03 8 views
1

Je suis en train de construire un menu flottant qui suit l'utilisateur quand il fait défiler l'écran:Le menu flottant ne fonctionne pas dans Chrome?

menuYloc = parseInt($("#floatMenu").css("top").substring(0,$("#floatMenu").css("top").indexOf("px"))); 
    $(window).scroll(function() { 
     var offset = menuYloc+$(document).scrollTop()+"px"; 
     $("#floatMenu").animate({top:offset},{duration:500,queue:false}); 
    }); 

Cela fonctionne parfaitement bien dans Firefox, mais ne fonctionne pas dans Chrome. Y a-t-il quelque chose qui me manque?

Répondre

2

Plutôt que d'essayer d'analyser la position supérieure de CSS du menu, vous pouvez utiliser les position() et offset() méthodes:

menuYloc = $("#floatMenu").offset().top; 
$(window).scroll(function() { 
    var offset = menuYloc+$(document).scrollTop()+"px"; 
    $("#floatMenu").animate({top:offset},{duration:500,queue:false}); 
}); 

position() est par rapport à la mère de décalage de l'élément (par exemple tout ce qui #floatMenu est contenu dans), alors que offset() est relatif au document.

Questions connexes