2012-03-01 13 views
2

私のjQueryスクロールスクリプトに問題があります。私は1ページのサイトの上部に固定メニューを作成することに成功しました。メニュー項目は、jqueryを使用してページの右側の領域にスクロールし、アクティブなメニュー項目が強調表示されます。jQueryスクロール、アクティブメニューの強調表示

問題は、ユーザーが手動でスクロールするときにメニュー項目を強調表示することです。私は以下のスクリプトがこれを修正すると教えてくれましたが、うまくいきません。

私は間違っていますか?

if($('#contact').offset() < $(document).scrollTop()) { // #contact is the element who one of the menu items scroll to. 

    $('.link-contact').css({ // The menu item 
     'background' : 'url(wp-content/themes/theme/images/menu.bg.png)', 
     'color' : '#999' 

    }); 
} 

答えて

1

.offset()上部と左プロパティを含むオブジェクトを返します。

あなたの場合、$('#contact').offset()はオブジェクトを返すので、if文は常にfalseになります。 $('#contact').offset().top

2

ページのロード時に、あなたの文は一度しか発射された場合ということでした。このようなtopプロパティの値がアクセス、言っ


スクロールイベントの中に入れてみましたか?

$(window).scroll(function() { 
    if($('#contact').offset().top < $(document).scrollTop()) { 
     ... 
    } 
}); 

これはすべきことです。

関連する問題