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

问题描述:

我正在研究一个项目,该项目是一系列页面上的帖子,当浏览器滚动时,类仅添加到该帖子中。我在这里有一个工作理念: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"); 
     } 

    }); 

}); 

我改成了每个岗位,并改变了你得到了岗位的价值。这已经被编辑,以解决你的问题在评论:当帖子的底部低于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. 
    } 
}); 
+0

太棒了!谢谢。无论如何,只要代码通过,就可以删除类。在这种情况下,这并不重要,但我想我可以使用它的一种方式是使用标题作为粘性,这样信息就可以在较长的帖子上获得。 –

+0

给我一秒,我会试一试。 –

+0

太棒了。非常感谢! –