Ich habe ein Element:
%Vor%Hier ist das JS:
%Vor%Und ich möchte eine Verzögerung von 500 ms für das Hover-Ereignis einstellen können.
Ich hatte bereits eine Antwort auf diese Frage, aber ich kann sie nicht für weitere acht Stunden posten. Ich werde wiederkommen!
Wie bereits erwähnt, habe ich dem moonenter-Ereignis einen Timer hinzugefügt.
%Vor%Das Problem, das ich hatte, war, dass das Popup immer noch eine halbe Sekunde später auftreten würde, wenn ich am Element vorbei blättern würde und der Mauszeiger darauf klickt. Ich möchte in der Lage sein, an einem Objekt vorbeizuscrollen, ohne dass das Popup zufällig passiert.
Durch das Setzen des Timeouts in eine Variable konnte ich das Timeout abbrechen. Was ich bei einer Maus mache lasse Ereignis, um sicherzustellen, dass Benutzer nicht versehentlich das Popup auslösen.
%Vor%Hier ist eine Geige für den Fall, dass jemand es in Aktion sehen möchte: jsfiddle
Wie bereits erwähnt, habe ich dem moonenter-Ereignis einen Timer hinzugefügt.
%Vor%Das Problem, das ich hatte, war, dass das Popup immer noch eine halbe Sekunde später auftreten würde, wenn ich am Element vorbei blättern würde und der Mauszeiger darauf klickt. Ich möchte in der Lage sein, an einem Objekt vorbeizuscrollen, ohne dass das Popup zufällig passiert.
Durch das Setzen des Timeouts in eine Variable konnte ich das Timeout abbrechen. Was ich bei einer Maus mache lasse Ereignis, um sicherzustellen, dass Benutzer nicht versehentlich das Popup auslösen.
%Vor%Hier ist eine Geige für den Fall, dass jemand es in Aktion sehen möchte: jsfiddle
Ich habe ein Element:
%Vor%Hier ist das JS:
%Vor%Und ich möchte eine Verzögerung von 500 ms für das Hover-Ereignis einstellen können.
Ich hatte bereits eine Antwort auf diese Frage, aber ich kann sie nicht für weitere acht Stunden posten. Ich werde wiederkommen!
Ich empfehle die Verwendung von CSS-Übergängen und angular-animate:
JS
%Vor%CSS
%Vor%HTML
%Vor%Hallo, dort oben, gute Antwort Wollte nur hinzufügen, vergessen Sie nicht, Ihren Timer abzubrechen, wenn Sie benötigt, wenn Sie schweben und es immer noch nicht ausgelöst oder wenn Sie die Direktive zerstören
%Vor%Ich habe eine einfache Direktive dafür geschrieben.
%Vor%Beispielverwendung (sc-hover-delay ist optional):
%Vor%Hier ist ein Plünderer: Ссылка
delayedMouseEnter
Ruft eine Funktion auf oder führt nach einer bestimmten Verzögerung ein Code-Snippet aus .
Oder der Angular %code% Service:
%Vor%Danke, dass Sie diese Frage gestellt haben, denn dieses Beispiel hat mir geholfen, zu verstehen, wie $ timeout viel besser funktioniert als die Dokumentation von AngularJS. Allerdings habe ich die Operation etwas an der richtigen Antwort verbessert und wollte sie hier teilen.
Sie müssen nie eine leere Var namens Timer erstellen. Tatsächlich verbraucht dies Speicher, den Sie nicht benötigen. Sie haben eine Variable und zwei Funktionen, um mit einer einzelnen Operation umzugehen.
Also habe ich eine einzige Funktion namens 'toggleHover' erstellt, die ein boolesches Argument namens 'bool' akzeptiert. Dann bestimmt eine if / else-Anweisung, welche $ timeout-Funktion Sie ausführen müssen.
window.setTimeout
Ruft eine Funktion auf oder führt nach einer bestimmten Verzögerung ein Code-Snippet aus .
Oder der Angular $timeout
Service:
Danke, dass Sie diese Frage gestellt haben, denn dieses Beispiel hat mir geholfen, zu verstehen, wie $ timeout viel besser funktioniert als die Dokumentation von AngularJS. Allerdings habe ich die Operation etwas an der richtigen Antwort verbessert und wollte sie hier teilen.
Sie müssen nie eine leere Var namens Timer erstellen. Tatsächlich verbraucht dies Speicher, den Sie nicht benötigen. Sie haben eine Variable und zwei Funktionen, um mit einer einzelnen Operation umzugehen.
Also habe ich eine einzige Funktion namens 'toggleHover' erstellt, die ein boolesches Argument namens 'bool' akzeptiert. Dann bestimmt eine if / else-Anweisung, welche $ timeout-Funktion Sie ausführen müssen.
Tags und Links javascript angularjs hover hoverintent