Verzögerung Javascript Hover-Aktion

8

Ich habe ein Bild auf meiner Website, dem eine jquery-Hover-Aktion zugewiesen ist. Aber es ist leicht, versehentlich über diesen Bereich zu mäuschen, und wenn Sie es mehr als einmal tun, erscheint der Schwebeflug immer wieder, verschwindet, erscheint usw., bis er einmal angezeigt wird und verschwindet, sobald Sie mit der Maus darüber fahren. Gibt es eine Möglichkeit, es so zu machen, dass die Aktion nicht ausgelöst wird, es sei denn, du schwebst für ein paar Sekunden? Ich möchte die Aktion nicht einfach verzögern, weil es immer noch bei jedem Mouseover passieren würde. Ich möchte sehen, ob es einen Weg gibt, bei dem der Mouseover nicht zählt, es sei denn, du bist für ein paar Sekunden auf dem Bild.

Bisheriges Skript:

%Vor%     
Molly Campbell 11.02.2013, 18:25
quelle

3 Antworten

9

Sie könnten setTimeout verwenden, um die Aktion zu starten, und eine Funktion binden, die clearTimeout für das Ereignis mouseout aufruft:

%Vor%

Oder Sie könnten dafür ein Plugin verwenden, wie schweben Sie .

    
Denys Séguret 11.02.2013, 18:26
quelle
0

Verwenden Sie vor der Animation .stop() , um die vorherige Animation abzubrechen. Ich glaube, das ist, was Sie suchen, und wird Ihr aktuelles Problem lösen.

%Vor%     
Samuel Liew 11.02.2013 18:27
quelle
0

Sie können einen Timer verwenden, um die Hover-Aktion erst dann auszulösen, wenn Sie eine bestimmte Zeit verweilt haben. Wenn der Hover vor dem Timer verschwindet, löschen Sie den Timer, damit nichts passiert nur eine kurze Zeit schwebte:

%Vor%

Hinweis: Ich habe auch .stop(true) zu Ihrer Animation hinzugefügt, damit Animationen sich nie aufstapeln.

    
jfriend00 11.02.2013 18:29
quelle

Tags und Links