Jquery步骤改变了变量

时间:2014-06-05 18:17:48

标签: javascript jquery variables scroll

不知道如何正确地命名这个问题,所以就这样吧。

我们有html:

<p id="p1"></p>
...
<p id="p14"></p>

和jquery:

$(window).scroll(function () {
    var scroll = $(window).scrollTop();
    for (var i = 70; i <= 980; i = i + 70) {
        if (scroll > i && scroll < i + 70) {
            var c = ???
            $("#p" + c).toggleClass("active");
        }
    }
});

需要什么: 当$(window).scrollTop()达到70到140级的值时,.active会添加到#p1

当值从140到210时 - 类添加到#p2并从#p1等中删除

我知道我可以用很多if (scroll > 70 && scroll < 140)个结构来做到这一点,但我想自动完成。想象一下<p>标签是50或更多。

我认为我需要使用额外变量c,它将动态地从1更改为14,但不知道如何实现它。

1 个答案:

答案 0 :(得分:3)

为什么不呢:

c = Math.floor(scroll / 70)

然后c将是1-14的值。完整的代码是:

$(window).scroll(function () {
    var scroll = $(window).scrollTop();
    for (var i = 70; i <= 980; i = i + 70) {
        if (scroll > i && scroll < i + 70) {
            var c = Math.floor(scroll / 70);
            $("#p" + c).toggleClass("active");
        }
    }
});

现在,说到这一点,你真的不需要循环。你可能只有:

$(window).scroll(function () {
    var scroll = $(window).scrollTop();
    var c = Math.floor(scroll / 70);
    $("#p" + c).toggleClass("active");
});