ich Web Animation API verwende eine einfache Animation zu erstellen, so dass, wenn ein Benutzer die Maus auf den target
bewegt, sollte die Animation von links nach rechts beginnen und wann fährt der Benutzer mit der Maus aus den target
, sollte die Animation umgekehrt werden und die target
sollte sich von rechts nach links bewegen.ruckelt Animation zu vermeiden, wenn Mouseover mit und mouseOut
Zeit, wenn der Benutzer die Maus in/out bewegt sich während der Animation, ist die Animation ruckartig, und ich keine glatte Wirkung haben.
Ich mag würde wissen, wie dieses Problem zu lösen.
Hinweis: Zur Zeit bin ich mit dem Web-Animations-API. Dasselbe Problem tritt jedoch auf, wenn Sie die CSS-Keyframe-Animation verwenden.
Ich habe auch versucht, dieses Problem zu lösen, die folgende Lösung, die die Situation verbessert, aber es ist nach wie vor problematisch. Hier ist ein anschauliches Beispiel https://jsfiddle.net/x784xwoa/5/
var elm = document.getElementById("target");
var player = document.getElementById("target");
elm.addEventListener('mouseover', function(event) {
console.log('mouseover', player.playState, 'animate');
player = elm.animate(
[{
left: "0px",
boxShadow: 'rgba(0, 0, 0, 0.5) 0px 0px 0px 0px'
}, {
left: "100px",
boxShadow: 'rgba(0, 0, 0, 0.9) 50px 150px 100px 0px'
}], {
duration: 3000,
direction: "normal",
fill: "forwards",
iterations: 1
}
);
});
elm.addEventListener('mouseout', function(event) {
console.log('mouseout', player.playState, 'reverse');
player.reverse();
});
#target {
position: relative;
top: 0;
left: 0;
width: 100px;
height: 150px;
background-color: red;
}
<div id="target"></div>
Was ist das Ruckeln, das Sie mit dem aktualisierten Codepen bemerken? Zurzeit implementieren sowohl Chrome als auch Firefox additive Animationen (Teil von Web-Animationen), mit denen Sie eine Animation erstellen können, die nahtlos in eine andere übergeht. – brianskold