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