Ich muss erkennen, ob ein Benutzer über ein Element schwebt, was einfach ist. Diese Ereignisse scheinen jedoch nicht ausgelöst zu werden, wenn das Element animiert wird. Wenn Sie meine Geige ausprobieren, lassen Sie das Element einfach an der Maus vorbeilaufen, ohne die Maus zu bewegen, und Sie werden sehen, dass die Ereignisse nicht ausgelöst werden. Es macht Sinn, warum das passieren würde, aber ich habe keinen guten Weg gefunden, das gewünschte Verhalten zu erhalten, nämlich den Schwebeflug zu erkennen, selbst wenn der Benutzer seine Maus nicht bewegt und das Element darunter animiert .Mouseover und Mouseout feuern nicht mit animierendem Element
Irgendwelche Gedanken?
Danke!
Hinweis: Lösungen ohne Verwendung von externen Bibliotheken sind optimal, aber jede Hilfe sehr geschätzt wird noch :)
HTML
<div id='moving'></div>
<ul id="message"></ul>
CSS
#moving {
width: 50px;
height: 50px;
background-color: red;
animation: move 7s linear;
}
@keyframes move {
from {transform: translateX(0px)}
to {transform: translateX(500px)}
}
JS
var counter = 0;
document.getElementById("moving").addEventListener("mouseover", function(){
counter++;
var node = document.createElement("LI");
var textnode = document.createTextNode("Entered " + counter);
node.appendChild(textnode);
document.getElementById("message").appendChild(node);
});
document.getElementById("moving").addEventListener("mouseout", function(){
var node = document.createElement("LI");
var textnode = document.createTextNode("Left " + counter);
node.appendChild(textnode);
document.getElementById("message").appendChild(node);
});
Hier ist eine Geige davon: https://jsfiddle.net/w5j842Lx/
Würde dies helfen? http://stackoverflow.com/questions/36380040/jquery-check-if-mouse-is-over-ananimation – natel
@natel Diese Art von Logik ist extrem teuer für das, was es tut. –
Ja, ich würde hoffen, dass es eine bessere Lösung gibt, aber ich kenne keine. – natel