Dies sollte ein ziemlich einfacher sein - Ich habe ein sehr einfaches Skript geschrieben, das erkennt, wenn ein Bild mit spezifischem Klassennamen auf dem Bildschirm durch Scrollen erscheint. Wenn das Bild angezeigt wird, wird eine Klasse hinzugefügt, die die CSS-Animation für Deckkraft und Bewegung auslöst.Fehler beim Umwandeln einer einfachen jQuery-Funktion in jede
Das funktioniert alles gut, aber ich will das für mehrere Bilder auf der gleichen Seite funktionieren. Ich habe versucht, jedes() sowohl innerhalb als auch außerhalb der Scroll-Funktion zu verwenden, und es bricht das Skript. Ich glaube, ich bin auf dem richtigen Weg, aber die Variablen, die verwendet werden, um zu erkennen, wann das Bild auf dem Bildschirm erscheint, werfen mich ab, denke ich, da ich $ (this) nicht wie normalerweise mit jeder() -Funktion verwenden kann.
jQuery Script ist hier:
// Setup
$(".appear").addClass("off");
objectOffset = $(".appear").offset().top;
winHeight = $(window).height();
trigger = objectOffset - winHeight;
$(window).scroll(function() {
if ($(window).scrollTop() > trigger) {
$(".appear").removeClass("off");
$(".appear").addClass("on");
}
});
JS Fiddle des Originals, funktionierende Skript (funktioniert nur auf dem ersten Bild):
https://jsfiddle.net/gv6qzxph/
Vielen Dank Jungs.
zu enthalten gebrochen Versuch Editiert:
// Setup
$(".appear").addClass("off");
$(".appear").each(function() {
objectOffset = $(this).offset().top;
winHeight = $(window).height();
trigger = objectOffset - winHeight;
$(window).scroll(function() {
if ($(window).scrollTop() > trigger) {
$(this).removeClass("off");
$(this).addClass("on");
}
});
});
Perfect, schön und sauber. Und danke für die Klärung meiner Fehler auch. –