Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery滚动,活动菜单突出显示_Jquery_Css_Scroll - Fatal编程技术网

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

jQuery滚动,活动菜单突出显示,jquery,css,scroll,Jquery,Css,Scroll,我的jQuery滚动脚本有一些问题。我成功地在我的一页网站顶部创建了一个固定菜单。菜单项在使用jquery的页面中滚动到右侧区域,活动菜单项高亮显示 问题是我想在用户手动滚动时突出显示菜单项。我认为下面的脚本可以解决这个问题,但它不起作用 我做错了什么 if($('#contact').offset() < $(document).scrollTop()) { // #contact is the element who one of the menu items scroll to.

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

    });
}
if($('#contact').offset()<$(document.scrollTop()){//#contact是其中一个菜单项滚动到的元素。
$('.link contact').css({//菜单项
“背景”:url(wp-content/themes/theme/images/menu.bg.png),
“颜色”:“999”
});
}
.offset()返回包含属性top和left的对象

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


也就是说,像这样访问top属性值:
$(“#contact”).offset()。top

可能是当页面加载时if语句只触发一次。
您是否尝试将其放入滚动事件中

$(window).scroll(function() {
    if($('#contact').offset().top < $(document).scrollTop()) {
        ...
    }
});
$(窗口)。滚动(函数(){
if($('#contact').offset().top<$(document.scrollTop()){
...
}
});
这应该能奏效