ユーザーが要素の上をホバーしているかどうかを検出する必要がありますが、これは簡単です。しかし、これらのイベントは、要素がアニメーション化されているときには発生しません。私のフィドルをチェックアウトした場合、マウスを動かさずにマウスの前を要素にアニメーションさせるだけで、イベントが発生しないことがわかります。なぜこれが起こるのかは分かりますが、ユーザーが自分のマウスを動かさずに要素がその下でアニメーション化されても、ホバリングを検出するためには、自分が望む動作を得るための良い方法を見つけることができませんでした。マウスオーバーやマウス出力が要素をアニメーション化して起動しない
どのような考えですか?
ありがとうございます!
注:外部ライブラリを使用せずに解決策が最適であるが、任意のヘルプはまだ評価されて:)
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);
});
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を
は、ここでのフィドルです: https://jsfiddle.net/w5j842Lx/
これは役に立ちますか? http://stackoverflow.com/questions/36380040/jquery-check-if-mouse-is-over-an-animation – natel
@natelそのようなロジックは、それがしていることに対して非常に高価です。 –
はい、もっと良い解決策があることを願っていますが、私には分かりません。 – natel