2016-06-01 19 views
0

ich eine Klasse in verschiedenen Divs während Vertical Scroll mit jQuery hinzufügen möchten. Ich schaffte es, die erste Div class während scroll hinzuzufügen, konnte aber die Lösung für andere nicht finden.Klasse zu verschiedenen Divs in Window vertikalen Scroll mit jQuery

Hier ist mein jQuery Code. Es funktioniert

jQuery(window).scroll(function() { 
    var scroll = jQuery(window).scrollTop(); 
    if (scroll >=200) { 
     jQuery('.feature-box').addClass('fadeInUp animated'); 
    } else { 
     jQuery(".feature-box").removeClass("fadeInUp animated"); 
    } 
    removeClass('fadeInUp animated'); 
}); 

Und ich will eine andere Klasse zu einem anderen div beim Scrollen. So etwas wie dies

jQuery(window).scroll(function() { 
    var scroll_more = jQuery(window).scrollTop(); 
    if (scroll_more >=400) { 
     jQuery('.more-box').addClass('fadeInUp animated'); 
    } else { 
     jQuery(".more-box").removeClass("fadeInUp animated"); 
    } 
    removeClass('fadeInUp animated'); 
}); 

Aber es wird nicht die Klasse zu more-box Klasse hinzuzufügen. Fehle ich hier etwas?

Vielen Dank im Voraus

+0

Sie dieses jQuery hinzufügen können ('feature-Box, .mehr-Box. ') AddClass (' fadeInUp animiert'). ; – vel

+0

das funktioniert, aber ich möchte nur hinzufügen, wenn zu den verschiedenen Div-Positionen scrollen –

+1

können Sie Geige machen? – vel

Antwort

1

Hier ist ein Hinweis (nicht getestet):

jQuery('.feature-box, .more-box').each(function() { 

    var wt = jQuery(window).scrollTop(); 
    var ct = jQuery(this).offset().top; 

    if(wt > ct) { 

     jQuery(this).addClass('fadeInUp animated'); 

    } else { 

     jQuery(this).removeClass('fadeInUp animated'); 

    } 

}); 

Wahrscheinlich sollten Sie etwas früher wie folgt auslösen:

wt > (ct - 200) 
+0

Eigentlich sind meine Abschnitte nicht in der Klasse verschachtelt, sie sind verschiedene 'Abschnitte' mit verschiedenen' Klassen'. Können Sie Ihren Code bearbeiten, der sich auf meine obige Frage bezieht? https://jsfiddle.net/1x0109c4/ meine Geige als Referenz. Danke –

+0

Scheint ziemlich hacky zu sein. Wählen Sie einfach jQuery ('. Feature-box, .more-box') anstelle von jQuery ('.fadeInBox') ... –

1

Wenn Sie beide wollen die gleichzeitig zu überprüfenden Bedingungen: -

if (scroll >=200) { 
    jQuery('.feature-box').addClass('fadeInUp animated'); 
} else { 
    jQuery(".feature-box").removeClass("fadeInUp animated"); 
} 
if(scroll >= 400){ 
    jQuery('.more-box').addClass('fadeInUp animated'); 
} else { 
    jQuery(".more-box").removeClass("fadeInUp animated"); 
} 
removeClass('fadeInUp animated'); 

Wenn Sie nur eine der Bedingungen erfüllt sein: -

if(scroll >= 400){ 
    jQuery('.more-box').addClass('fadeInUp animated'); 
} 
else if(scroll >= 200){ 
    jQuery('.feature-box').addClass('fadeInUp animated'); 
} 
else { 
    jQuery(".more-box").removeClass("fadeInUp animated"); 
    jQuery(".feature-box").removeClass("fadeInUp animated"); 
} 
removeClass('fadeInUp animated'); 
+0

Klassen mit dem zweiten Teil hinzugefügt. Ja, das ist ähnlich wie ich es brauche. Aber, sobald ich die Seite auffrische und nach unten scrolle, "Feature-Box" fährt fort, Klasse hinzuzufügen, wenn ich nach oben blättern und nach unten scrollen, aber "mehr-Box" -Klasse fügt keine andere Klasse hinzu. Eigentlich muss ich die Klasse entfernen, sobald das Scrollen beendet ist. –