Ich mag wäre prüfen, ob eine Klasse auf ein Element in der Scroll hinzugefügt wird, und starten Sie eine andere Funktion, nur einmal, bis die Klasse auf das nächste Element hinzugefügt wird.Start-Funktion sofort, wenn Klasse auf sichtbares Element hinzugefügt wird
hier meine erste Funktion:
function onScreen() {
$('article').each(function() {
var thisTop = $(this).offset().top - $(window).scrollTop();
var middleScreen = $(window).height()/2;
if (thisTop < middleScreen && (thisTop + $(this).height()) > middleScreen) {
$(this).addClass('visible');
} else {
$(this).removeClass('visible');
}
});
}
// launch
$(window).on('load scroll', onScreen);
Meine seconde Funktion: Ich möchte nur einmal starten, wenn die visible
Klasse in einer anderen article
hinzugefügt wird.
function textChange() {
var v = $('article.visible');
var el = $('.el', v);
var text = $(el).html();
$('.titre').html(text);
}
$(window).on('load scroll', textChange);
Hinweis: Es ist mir wichtig, zwei separate Funktion zu halten. Mein Problem ist die Scroll-Funktion Anruf textChange()
jedes Pixel Ich scrolle auf der Seite. Strangly, die onScreen()
Funktion fügen Sie die visible
Klasse nur einmal, bis die nächste article
wird sichtbar sein.
Vielen Dank für Ihre Vorschläge.
warum gehst du nicht Rufen Sie Ihren 'textChange' nach' $ (this) .addClass ('visible'); '? –
Da ich die 'onScreen()' Funktion trennen möchte, beende die Bearbeitungsfunktion. Wie auch immer, das Problem ist immer noch das gleiche. – BrownBe
Ich nehme an, dass Sie auf der Seite nur einen sichtbaren Artikel zur Zeit haben werden? –