2017-09-07 6 views
1

Ich weiß, es gibt mehrere Q fragt nach diesem. Aber diese sind ziemlich alt und nicht aktiv. Gibt es neue Methoden oder Workarounds oder Ideen dafür?Gibt es neue Möglichkeiten zu erkennen, ob das Bildlaufereignis von Benutzer oder Animation erstellt wurde

Was ich will ist die Scroll-Ereignisse zu unterscheiden.

Lassen Sie uns sagen, ich das Hinzufügen einer Klasse max-limit auf Funktion und nach dem Auslösen einer Animation:

$(this).addClass('max-limit'); 
$('html,body').animate({ 
    scrollTop: thS.offset().top - window.innerHeight/2 
}, 500); 

Die Sache ist, danach bin Entfernen es auf eine Scroll-Funktion:

$(window).on('scroll',function(){ 
    $('.thisClass').removeClass('max-limit'); 
}); 

aber jetzt, weil eine Animation nach der addClass auslösen die Klasse automatisch aufgrund meiner Scroll-Funktion entfernt, was ich will, ist nur diese Klasse zu entfernen, wenn ein Benutzer die Seite scrollt. Jede Hilfe wäre willkommen. Vielen Dank im Voraus.

Antwort

1

Weil Sie jQuery verwenden animate können Sie:

:animated Selector: alle Elemente auswählen, die der Wähler zu der Zeit im Verlauf einer Animation sind ausgeführt wird.

Daher Ihre Scroll-Ereignis wird sein:

$(window).on('scroll',function(e){ 
    if (!$('html,body').is(':animated')) { 
     $('.thisClass').removeClass('max-limit'); 
    } 
}); 
Verwandte Themen