2012-03-01 100 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()) { 
     ... 
    } 
}); 

这应该做的伎俩。