jQuery mouseover mouseout Deckkraft
function hoverOpacity() {
$('#fruit').mouseover(function() {
$(this).animate({opacity: 0.5}, 1500);
});
$('#fruit').mouseout(function() {
$(this).animate({opacity: 1}, 1500);
});
}
Dies ist meine Funktion, die animiert div#fruit
, und es funktioniert.
Das problem ist Folgendes; Wenn Sie mouseout
vor der mousein
animation beendet ist, muss die animation fertig ist, bevor die mouseout
. (hoffe das macht Sinn)
Dies ist in der Regel nicht spürbar, aber mit einer langen Dauer, es ist spürbar.
Anstelle der Fertigstellung der animation, ich will die animation zu stoppen und umzukehren, um den ursprünglichen Zustand.
- danke für die Antwort jeder. die Stopp-Funktion führte mich zu der folgenden Seite, das ist genau das, wat ich brauchte: css-tricks.com/examples/jQueryStop
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du suchst die
stop
Funktion, eventuell gefolgt vonshow
(oderhide
odercss
ist, hängt davon ab, in welchem Zustand Sie möchtenopacity
zu enden).Den
true
sagt der animation zu springen, um das Ende. Wenn dies die einzige animation, die auf das element, es sollte in Ordnung sein; ansonsten, wie ich schon sagte, kann man sich beicss
explizit die gewünschte Deckkraft.Getrennt, obwohl, könnte man auf die Verwendung
mouseenter
undmouseleave
eher alsmouseover
undmouseout
aus zwei Gründen: 1.mouseover
wiederholt die Bewegung der Maus über das element, und 2. Beidemouseover
undmouseout
Blase, und so, wenn Sie Ihre "Früchte" - element child-Elemente, werden Sie Ereignisse empfangen, die von Ihnen als gut, was tendenziell zu einer Destabilisierung dieser Art von animation.Müssen Sie zum hinzufügen eines Anrufs zu
.stop()
bevor Sie animieren zum löschen der aktuellen und alle in der Warteschlange Animationen:Versuchen Sie dies:
Dieser sollte die animation anzuhalten, deaktivieren Sie die Warteschlange (first arg) und springen Sie an das Ende (zweite arg), die Sie ändern können /wollen, um Chaos mit den Argumenten als angemessen.
versuchen, diese aswell: