Я искал способ, чтобы прервать анимацию и изменить направление, что-то вроде:Изменить направление во время анимации (с использованием ванильного JS анимации)
var elem = document.getElementById('elem');
var rightwards = false;
var leftKeyframe = { transform: 'translate(0)' };
var rightKeyframe = { transform: 'translate(200px, 0)' };
function toggledirection() {
rightwards = !rightwards;
if (rightwards) {
elem.animate([leftKeyframe, rightKeyframe], 1000);
} else {
elem.animate([rightKeyframe, leftKeyframe], 1000);
}
}
div {
width: 50px;
height: 50px;
border: 3px solid grey;
}
<div id="elem"></div>
<button onclick="toggledirection();">Toggle Direction</button>
Однако, обратите внимание, как у меня есть чтобы определить начальную позицию каждой анимации, поэтому, когда я прерываю текущую анимацию, ящик переходит в новую начальную позицию и переходит оттуда. Я бы хотел, чтобы ящик начинал с того места, где он сейчас находится like so (но это использует анимацию CSS, тогда как я ищу решение JS). Единственный метод, который я имею до сих пор, - это получить текущий перевод на parsing the transform string, но мне было интересно, был ли более простой способ.
http://caniuse.com/#feat=web-animation humm, я не знал этого API. Однако почему не решение css/js, как пример, который вы использовали в ссылке «like so»? – Saba
js-анимация обладает большей мощностью и гибкостью, и они могут даже быть [быстрее] (https://css-tricks.com/myth-busting-css-animations-vs-javascript/): O – woojoo666