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% Sie könnten setTimeout
verwenden, um die Aktion zu starten, und eine Funktion binden, die clearTimeout
für das Ereignis mouseout
aufruft:
Oder Sie könnten dafür ein Plugin verwenden, wie schweben Sie .
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.
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.
Tags und Links javascript jquery hover delay