$(window).scrollTop突出显示元素

时间:2013-06-25 00:09:12

标签: jquery this scrolltop onscroll

我正在开发一个项目,这是一个页面上的一系列帖子,当浏览器滚动时,类只会添加到该帖子中。我在这里有一个工作概念:http://jsfiddle.net/chdhmphry/V7jPU/

我的问题是,这突出了所有帖子而不是一个。我尝试做了一些工作,但似乎不允许我只是将类添加到适合参数的帖子(在窗口顶部的20px内)。我尝试了$(this),因此$(".post").ready(function () {是代码的一部分。我究竟做错了什么?

jQuery:

$(window).scroll(function() {

    var scroll = $(window).scrollTop();

    $(".post").ready(function () {
        post = $(".post", this).offset().top,
        opacity = post - 20;

        if (scroll >= opacity) {
            $(this).addClass("seventy");
        } else{
            $(this).removeClass("seventy");
        }

    });

});

1 个答案:

答案 0 :(得分:1)

我将其更改为每个帖子,并更改了您获取帖子的价值的方式。这已被编辑以在评论中解决您的问题:当帖子的底部低于scrollTop时,它将失去七十个课程。

$(".post").each(function () {
    var postTop = $(this).offset().top - 20,
        postBottom = $(this).height() + postTop - 100; // -100 is just to show it work, remove.

    if (scroll >= postTop &&
       scroll <= postBottom) {
        $(this).addClass("seventy");
    } else{
        $(this).removeClass("seventy");
        return false; // more efficient, but might not work.
    }
});