2012-03-01 65 views
2

我的jQuery滾動腳本存在一些問題。我成功地在我的單頁網站頂部創建了一個固定菜單。菜單項使用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()返回一個包含屬性top和left的對象。

在你的情況下,$('#contact').offset()返回一個對象,所以你的if語句將始終爲false。

也就是說,訪問頂部的屬性值是這樣的:$('#contact').offset().top

2

可能是你的if語句只發射一次頁面加載時。
你有沒有嘗試把它放在一個滾動事件?

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

這應該做的伎倆。