Problema jQuery con ancho de menú

Estado
No está abierto para más respuestas.

lobogris

Platino
Usuario de Bronce
Mensajes
1,537
Puntuación de reacción
0
Buenas,

estoy creando un menú con Superfish.js, que por desgracia no es responsive ni se adapta al ancho de la página, por lo cual he creado el siguiente código (para adaptarlo al ancho)

HTML:
$.fn.respoNav = function() {

  var total = $("#nav-collapse li.fst").length; // contamos los li principales del menú
      wdwWidth = $(window).width();             // recogemos el ancho de la pantalla
      liWidth = (wdwWidth - 30) / total;        // calculamos un ancho proporcional a cada li principal, los 30px es el padding del body
      totalWd = (liWidth * total) + 30;         // esto es para la navegación móvil

    if( wdwWidth <= 480 || totalWd > wdwWidth ) {      // esto es para la navegación móvil

      $("#toggle-mobilemenu").show();
      $("#main-nav").addClass("mobile-menu");
      $("#nav-collapse").removeClass('sf-menu');

      $("#toggle-mobilemenu").click(function() {
        $("#nav-collapse").toggle();
      });

      $("#nav-collapse li").has("ul").each(function() {
          $(this).children('a').addClass('ddArrow');    //hasta aquí
      });
      

    } else {

      $(".fst").width(liWidth);          //a cada li principal le asignamos el ancho proporcional

      $('#nav-collapse').superfish({    //funciones del superfish
        delay: 500,
      });

    }
}

Bien, el problema es que jQuery está asignando 0.03px de más a cada li principal del menú, pero sólo me sucede cuando tengo 7 li principales. Es decir que me calcula 0.21px de más y me rompe el menú mostrándose el último li no alineado a los demás.

Si en las dos variables de arriba cambio el 30 por 30.21 funciona perfectamente, pero no es lo correcto...

La pregunta es ¿por qué puede suceder esto, si el ancho de la ventana son 1440px por qué jQuery me da 1440.003px?, es algo que no me entra :s

Saludos

Edito: Es por el redondeo de los px, solucionado
 
Última edición:
Estado
No está abierto para más respuestas.
Arriba