我有3个DIV,我想要做的就是如果用户滚动底部那些DEM 一个接一个出现,如果他滚动顶部他们就会消失。前两个DIV工作正常,但第三个不是。
这就是我的尝试:
$(window).scroll(function () {
if ($(window).scrollTop() > 100) {
$("#one").fadeIn(5000);
$('#two').next().fadeIn(5000);
$('#three').next().fadeIn(5000);
}
});
$(window).scroll(function () {
if ($(window).scrollTop() < 100) {
$("#one").fadeOut(10);
$('#two').next().fadeOut(10);
$('#three').next().fadeOut(10);
}
});
Here就是样本。
有任何更正或建议吗?
答案 0 :(得分:1)
next()
正在选择下一个div
而不是您想要的那个one
,所以实际上您说three
淡入,three
淡入,之后的事情.next()
淡出。与out相同。删除所有$('.fadeClass').waypoint(function(direction){
if(direction == "down")
$(this).animate({opacity:1}, 5000);
else if(direction == "up")
$(this).animate({opacity:0}, 1000);
},{offset:500});
并查看它是否符合您的要求。
编辑: 你说当你滚动到它们时希望它们出现,你可以尝试使用jQuery Waypoints。一个例子是http://jsfiddle.net/EqYsy/28/
{{1}}
答案 1 :(得分:1)
尝试this:
$(window).scroll(function () {
if ($(window).scrollTop() > 100) {
$("#one").fadeIn(5000).next().fadeIn(5000).next().fadeIn(5000);
}
});
$(window).scroll(function () {
if ($(window).scrollTop() < 100) {
$("#one").fadeOut(10).next().fadeOut(10).next().fadeOut(10);
}
});
答案 2 :(得分:1)
除.next()
的问题外,我还要重写您的代码:
$(window).scroll(function () {
if ($(window).scrollTop() > 100) {
$('#test').animate({opacity:1}, 5000);
} else {
$('#test').stop(true, false).css({'opacity':0});
}
});
我觉得它看起来更容易,也更容易理解。对于HTML,我添加一个包装器(这里称为测试)只是为了减少代码大小。 jsFiddle是here