Cuando se carga la página, el menú óbviamente está plegado y HEIGHT me calcula los 34px automáticamente. Cuando lo despliego, hay otro elemento que se hace visible (.menuwrap), pero me sigue tomando los 34px porque son los que HEIGHT calculó al cargar la página, y en ese momento .menuwrap estaba invisible (hidden).
Os pongo mi código a ver qué podemos hacer:
Código Javascript:
Ver original
$("document").ready(function($){ if ($('#condensed-header').length){ //Si hay esta versión del menú var nav = $('#condensed-header'); if ($('#topnav').length){ //Comprueba que tenga activada la navegación superior if ($(".mobile-top-button").is(":hidden")) { //Si no es versión responsive var height = 3 + $("#topnav .menuwrap").height(); } else { //Si el menú no está desplegado if($("#topnav .menuwrap").is(":hidden")) { height = 3 + $(".mobile-top-button").height(); } else { height = 3 + $("#topnav").height(); //NO CALCULA ESTE HEIGHT } } } else { height = 3; } $(window).scroll(function () { if ($(this).scrollTop() > height) { nav.addClass("f-nav"); } else { nav.removeClass("f-nav"); } }); } });