#slidingArrow
script.js @231行目の位置の値を取得するために間違ったクラスを使用しているようです。
activeItem = menuList.find('.current_page_item, .current_page_ancestor, .current_page_parent');
.current_page_item
に切り替えるのに適していると思います.current-menu-item
。.current_page_item
クラスがすべてのページに入力されているようには見えなかったため、div#slidingArrow
要素は位置情報を取得できませんでした。
script.jsで、私が行った変更は次のとおりですmenuSlidingArrow()
。
function menuSlidingArrow() {
if(!($j('html').hasClass('oldie'))) {
var mainmenu = $j('.menu-content'),
arrow = $j('#slidingArrow'),
menuList = mainmenu.find('ul.menu'),
activeItem = menuList.find('.current-menu-item, .current_page_ancestor, .current_page_parent'); //remove .current_page_item
$j(window).load(function() {
arrow.css({ 'left':(activeItem.position().left + ((activeItem.outerWidth() - 48)/2) ) -6});
arrow.fadeIn('slow');
});
menuList.children().hover(function(){
arrow.animate({ 'left':($j(this).position().left + (($j(this).outerWidth() - 48)/2) ) -6},
{ queue: false, easing: 'easeOutQuad', duration: 250 });
},function(){
arrow.animate({ 'left':(activeItem.position().left + ((activeItem.outerWidth() - 48)/2) ) -6},
{ queue: false, easing: 'easeOutQuad', duration: 250 });
});
}
}
また、それを機能させるために次のCSSが必要でした。
#menu-main-menu {
margin-left:68px;
}
#menu-item-8197 a { /* hide home navigation item */
color:#fff;
}
#slidingArrow {
margin-left:77px;
}
最後に、必ず「ホームページ」ページをトップナビゲーションに追加してください。ナビゲーションの最初のアイテムとして追加する必要があります。
全体として、私は変更/追加しました:
.current_page_item
に変更されました.current-menu-item
- 追加
#slidingArrow { margin-left: 77px; }
、、menu-item-8197 a { color:#fff; }
_#menu-main-menu { margin-left:68px; }
#slidingArrow
ナビゲーションアイテムの下の中央に計算を変更
- ナビゲーションにホームを追加
- ナビゲーションでホームナビゲーション要素を非表示にする
これがどのように機能するかをお知らせください。エラーが発生した場合は、回答を訂正させていただきます。