jQuery滚动,活动菜单突出显示

时间:2012-03-01 17:45:57

标签: jquery css scroll

我的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'

    });
}

2 个答案:

答案 0 :(得分:2)

可能是你的if语句只在​​页面加载时触发一次。
你试过把它放在滚动事件中吗?

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

这应该可以解决问题。

答案 1 :(得分:1)

  

.offset()返回一个包含top和left属性的对象。

在您的情况下$('#contact').offset()返回一个对象,因此您的if语句将始终为false。

也就是说,访问顶级属性值,如下所示:$('#contact').offset().top