Skip to main content

位置动画教程

要使用 Konva 进行形状位置的动画,我们可以创建一个新的动画 Konva.Animation,它会在每个动画帧中修改形状的位置。

有关属性和方法的完整列表,请查看 Konva.Animation 文档

import Konva from 'konva';

const stage = new Konva.Stage({
container: 'container',
width: window.innerWidth,
height: window.innerHeight,
});

const layer = new Konva.Layer();
stage.add(layer);

const circle = new Konva.Circle({
x: 50,
y: window.innerHeight / 2,
radius: 30,
fill: 'red',
stroke: 'black',
strokeWidth: 4,
});
layer.add(circle);

const amplitude = 100;
const period = 2000; // 以毫秒为单位


const anim = new Konva.Animation(function(frame) {
circle.x(
amplitude * Math.sin((frame.time * 2 * Math.PI) / period) +
window.innerWidth / 2
);
}, layer);

anim.start();