Javascript 将类添加到滚动页面jquery上的div

Javascript 将类添加到滚动页面jquery上的div,javascript,jquery,css,scroll,addclass,Javascript,Jquery,Css,Scroll,Addclass,我想我需要帮助。我正在尝试使用jQuery,我知道的不多,但我对菜单的“颜色活动”有这个问题 以下是我工作的简化版本: 以下是全部工作(完成): 如您所见,当我在菜单中单击时,“活动颜色”起作用,但当我滚动页面或打开页面时,不起作用 我想最大的错误在于这一行: if($(窗口).scrollTop()==$(“#g-4”){…} 我以g-4为例,但它也不起作用 我在Stackoverflow尝试了其他答案,但我无法做到这一点 请轻一点?如果您想在滚动时更改菜单,可以尝试以下方法: $('.gri

我想我需要帮助。我正在尝试使用jQuery,我知道的不多,但我对菜单的“颜色活动”有这个问题

以下是我工作的简化版本:

以下是全部工作(完成):

如您所见,当我在菜单中单击时,“活动颜色”起作用,但当我滚动页面或打开页面时,不起作用

我想最大的错误在于这一行:

if($(窗口).scrollTop()==$(“#g-4”){…}

我以g-4为例,但它也不起作用

我在Stackoverflow尝试了其他答案,但我无法做到这一点


请轻一点?

如果您想在滚动时更改菜单,可以尝试以下方法:

$('.grid').each(function () {
    if ($(window).scrollTop() > $(this).position().top - ($(this).height() / 2)) {
        $('.myList a').removeClass('active');
        $('.myList a#menu' + $(this).attr('id').split('-')[1]).addClass('active');
    }
});

更新了JSFIDLE。

如果您希望在滚动时更改菜单,可以尝试以下操作:

$('.grid').each(function () {
    if ($(window).scrollTop() > $(this).position().top - ($(this).height() / 2)) {
        $('.myList a').removeClass('active');
        $('.myList a#menu' + $(this).attr('id').split('-')[1]).addClass('active');
    }
});

更新了你的JSFIDLE。

你在找这个吗

如果是,则我使用
.offset().top
进行比较

一个问题是
$(window).scrollTop()
以整数形式给出滚动条位置,并且您的divs位置已修复,因此您需要在应用该类之前进行范围检查


你在找这个吗

如果是,则我使用
.offset().top
进行比较

一个问题是
$(window).scrollTop()
以整数形式给出滚动条位置,并且您的divs位置已修复,因此您需要在应用该类之前进行范围检查


是的,因为您正在将对象与数值进行比较!哦您知道正确的方法吗?是的,因为您正在将对象与数值进行比较!哦你知道正确的方法吗?我用了g-4作为例子。。。我想当我在页面上滚动时,“活动颜色”会根据特定的div发生变化。就像这里:(滚动页面以查看菜单颜色发生了什么变化)我使用了#g-4,只是一个示例。。。我想当我在页面上滚动时,“活动颜色”会根据特定的div发生变化。就像这里:(滚动页面以查看菜单颜色的变化)太好了!这一个也起作用了,但他先回答:“对不起,谢谢!”@PaulaFleck别后悔magnus的回答比我的好。去吧]太好了!这一个也起作用了,但他先回答:“对不起,谢谢!”@PaulaFleck别难过magnus的回答比我的好