2

我正在我的个人网站上的活动导航指示器箭头上做一些工作:http: //staging.rjlacount.com

问题:导航指示箭头在页面加载时不会在活动项目下方居中,但会在窗口调整大小时居中。

我用来使箭头居中的代码(从http://staging.rjlacount.com/js/functions.js的第 80 行开始)如下:

var $arrowOffset = 8;

var navArrowCenter = function() {
  var $current_page_item = $(".current_page_item a");
  $arrow
    .css("left", $current_page_item.position().left + ( ($current_page_item.width() / 2) - $arrowOffset) );
};

$wind.resize(function() {
    navArrowCenter();
});

$wind.load(function() {
    navArrowCenter();
});

我已经尝试删除加载功能时的页面淡入淡出,假设它导致 jQuery 无法正确呈现元素宽度,但这似乎根本不会影响问题。

任何正确方向的观点都将不胜感激。

谢谢!

4

2 回答 2

2

您是否尝试将其从 中删除$(window).load()

试试这个:

  navArrowCenter();

代替:

$wind.load(function() {
    navArrowCenter();
});
于 2013-03-19T15:09:32.877 回答
0

我猜这是因为 DOM 还没有准备好。在文档上尝试,ready而不是load

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

顺便说一句,如果这是一个JQuery 加载(看起来是这样),那么这是完全不同的 - 它用于从另一个页面加载 html。


document ready查看您的代码后,无论如何您已经拥有了全部内容。因此,正如@Blowsie 所说,只需调用该函数而不将其包装在您的$wind.load

于 2013-03-19T15:09:15.203 回答