2016-12-07 9 views
1

Ich möchte eine Animation auf einem div schweben. Aber es funktioniert nicht, wenn meine Maus außerhalb der Div ist, funktioniert die Animation nicht. Warum ?Mousemove animieren auf Hover

https://jsfiddle.net/udn5b9fd/

$(document).mousemove(function(e){ 
$("span").css({left:e.pageX - 50, top:e.pageY - 50}); 
}); 


$("div").hover(

    function() { 
    $("span").stop().animate({"height": "100px", "width": "100px"}, 200); 
    }, 
    function() { 
    $(this).stop().animate({"opacity": "0.5"}, 0); 
    }, 
    function() { 
    $(this).stop().animate({"opacity": "1"}, 0); 

}); 
+0

Sie können nicht drei Funktionen innerhalb der Hover-Erklärung haben nur eine für in und eine für out .... Welches ist das erwartete Verhalten ist? Wenn die Spanne anwächst, ist der Schwebeflug auf dem Div null. – DaniP

Antwort

2

Es gibt mehrere Fehlerbehebungen, sollten Sie sich bewerben:

  1. entfernen 3. Funktion von hover Rückruf, da es nur zwei Parameter: Jquery Hover
  2. aktualisieren alle Eigenschaften in jedem der Handler: opacity, height, width
  3. Fügen Sie pointer-events: none Stil zu Ihrem span Element, um zu verhindern, hoverOut aufrufen, wenn Ihre Maus unter der span.

Schauen Sie sich das Beispiel für weitere Informationen: JSFiddle example