2

问题是加载新页面时我的菜单跳转(所选菜单项应该完全居中。菜单使用代码:

$(document).ready(function(){

    /* Menu klik animatie II */
    $("nav#menu a").click(function(e) {
        e.preventDefault();
        var dit = $(this);
        $(this).parent().siblings().removeClass("current_page_item");
        $(this).parent().addClass("current_page_item");
        geselecteerd = $('#menu li.current_page_item').sumOuterWidth(true);
        voor = $('#menu li.current_page_item').prevAll().sumOuterWidth(true);
        vader = $('#menu').parent().width();
        invoegen = parseInt(((vader-geselecteerd)/2)-voor);
        $('nav#menu').prev().animate({
            width: invoegen + 'px',
        }, {
            duration: 400,
            specialEasing: {
                width: 'linear',
                height: 'easeOutBounce'
        },
        complete: function() {
            $('#content').fadeTo('fast', 0.01, function() {
                document.location = $(dit).attr('href');
            });
        }
      });
    });

    /* Menu uitlijning: geselecteerde item centraal */
    $.fn.sumOuterWidth = function(useMargins) {
      var sum = 0;
      this.each(function() { 
        sum += $(this).outerWidth(useMargins);
      });
      return sum;
    };

    geselecteerd = $('#menu li.current_page_item').sumOuterWidth(true);
    voor = $('#menu li.current_page_item').prevAll().sumOuterWidth(true);
    vader = $('#menu').parent().width();
    invoegen = parseInt(((vader-geselecteerd)/2)-voor);
    $('#menu').before("<div style='width:" + invoegen + "px;float:left'>&nbsp;</div>");
});

我真的想不出我做错了什么;宽度(来自菜单之前的 div)在动画宽度(在新页面加载之前)和新加载页面上应该相同。有人对此有任何想法吗?

当我使用不同的字体(Varela Round -> Google web fonts)时,它不会发生。

4

1 回答 1

0

当 DOM 准备好时,此 jQuery 语法会运行代码。

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

在某些情况下,您会希望在代码运行之前加载整个页面(以及它的图像依赖项)。在这些情况下,我们如下:

$(window).load(function() { //code })
于 2012-10-02T15:57:40.267 回答