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 に答える