$(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.
}
});
太棒了!谢谢。无论如何,只要代码通过,就可以删除类。在这种情况下,这并不重要,但我想我可以使用它的一种方式是使用标题作为粘性,这样信息就可以在较长的帖子上获得。 –
给我一秒,我会试一试。 –
太棒了。非常感谢! –