Jquery next()不帮助scrollTop()上的第三个元素
我有3个div,我想做的是,如果用户一个接一个地滚动底部,这些div就会出现,如果他滚动顶部,它们就会消失。前两个分区工作正常,但第三个分区工作不正常 这就是我所尝试的:Jquery next()不帮助scrollTop()上的第三个元素,jquery,Jquery,我有3个div,我想做的是,如果用户一个接一个地滚动底部,这些div就会出现,如果他滚动顶部,它们就会消失。前两个分区工作正常,但第三个分区工作不正常 这就是我所尝试的: $(window).scroll(function () { if ($(window).scrollTop() > 100) { $("#one").fadeIn(5000); $('#two').next().fadeIn(5000); $('#three').
$(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);
}
});
$(窗口)。滚动(函数(){
如果($(窗口).scrollTop()>100){
美元(“#一”)。法代因(5000);
$('2').next().fadeIn(5000);
$('三').next().fadeIn(5000);
}
});
$(窗口)。滚动(函数(){
如果($(窗口).scrollTop()<100){
美元(“#一”)。淡出(10);
$('#two').next().fadeOut(10);
$('#三').next().fadeOut(10);
}
});
这是样品
任何更正或建议?下一步()正在选择下一个div
而不是您想要的,因此实际上您说的是one
淡入,three
淡入,以及three
淡入之后的内容。我们也一样。删除所有.next()
并查看它是否符合您的要求
编辑:
您说过您希望它们在滚动时显示,您可以尝试使用。例如
尝试:
$(窗口)。滚动(函数(){
如果($(窗口).scrollTop()>100){
$(“#one”).fadeIn(5000.next().fadeIn(5000.next().fadeIn(5000);
}
});
$(窗口)。滚动(函数(){
如果($(窗口).scrollTop()<100){
$(“#one”).fadeOut(10.next().fadeOut(10.next().fadeOut(10);
}
});
除了.next()
的问题之外,我会像这样重写您的代码:
$(window).scroll(function () {
if ($(window).scrollTop() > 100) {
$('#test').animate({opacity:1}, 5000);
} else {
$('#test').stop(true, false).css({'opacity':0});
}
});
我认为这看起来更容易理解。对于HTML,我会添加一个包装器(这里称为test)来减少代码大小。jsFiddle是just remove.next(),另外,我没有隐藏div,而是将它们的不透明度设置为0,这样页面维度保持不变。事实上,滚动条会改变大小,这真的很让人困惑@弗伦奇,这是我想的下一个问题。我想在JSFIDLE上试试。谢谢你虽然我试过了,但首先没用。但是有没有比我所做的更好的技术(3次使用fadeIn())@约翰:是的,还有另一种方法:你可以简单地将3个div包装到另一个div中,然后用包装器div来实现效果。@John有很多方法可以做到,你可以给它们都一个类,或者你可以像
$('#one')一样一次选择它们。nextAll('p')。addBack().fadeIn(5000)代码>但这一切都取决于你想做什么。@frenchie,他们已经在一个包装器分区中了。但是什么技术呢?什么功能?下一个()?@BearFist,我试过你说的。但没有结果。你能检查一下代码吗?非常感谢你给我时间:)我检查过了,是的,滚动条的大小调整消失了。
$(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);
}
});
$(window).scroll(function () {
if ($(window).scrollTop() > 100) {
$('#test').animate({opacity:1}, 5000);
} else {
$('#test').stop(true, false).css({'opacity':0});
}
});