Используйте библиотеку, такую как GSAP.Создайте объект, содержащий координаты, которые вы будете использовать для позиционирования элементов холста, например, {x: 100, y: 100}, а затем используйте GSAP для анимации значений объекта x / y.Затем элемент canvas можно позиционировать / анимировать с помощью этого анимационного объекта координат.
Этот пример выглядит достаточно прилично: https://codepen.io/jonathan/pen/ychlf
HTML
<div id="canvas-wrapper">
<canvas id="canvas" width="800" height="600">canvas not supported</canvas>
</div>
JS
var ctx, img;
function init() {
ctx = document.getElementById("canvas").getContext("2d");
img = new Image();
img.src = "https://s3-us-west-2.amazonaws.com/s.cdpn.io/56901/dog_1_small.jpg";
img.xpos = 50;
img.ypos = 50;
img.globalAlpha = 1.0;
img.onload = function() {
TweenLite.ticker.addEventListener("tick",loop);
}
TweenMax.to(img, 1 ,{
globalAlpha:0,
xpos:500,
ypos:400,
repeat:-1,
yoyo:true
});
}
function loop(){
ctx.clearRect(0,0,800,600);
ctx.globalAlpha = img.globalAlpha;
ctx.drawImage(img, img.xpos, img.ypos);
}
init();
надеюсь, что поможет