fabricJSのように、アニメーションにはいくつかのアプローチがあります。タイムアウト/インターバルのいずれかを使用してそのようなものを変更するか、アニメーション機能(単純なオブジェクトプロパティ用)を使用してそのようにすることができます。このようなことについては、アニメーション機能の使用が簡単だと思います。例えば
:
var canvas = new fabric.Canvas(...);
var rect = new fabric.Rect(...);
function startAnimation() {
// If the object was removed, add it back
if (rect.opacity === 0) {
canvas.add(rect);
}
// Animate the opacity of the rectangle from 0 - 1 and back
rect.animate('opacity', rect.opacity === 0 ? 1 : 0, {
duration: 1000,
onChange: canvas.renderAll.bind(canvas),
onComplete: function() {
// Once the animation is complete, remove the object
if (rect.opacity === 0) {
canvas.remove(rect);
}
},
easing: fabric.util.ease['easeInQuad']
});
}
JSFiddle:http://jsfiddle.net/qnwjs0aw/
fabricJSドキュメント:& http://fabricjs.com/animation-easing
出典
2017-01-28 05:17:56
Ben
グレート回答。効果のジャンプのためにあなたのフィドルを更新しようとしました。私はそれを働かせることができませんでした。何か不足していますか? http://jsfiddle.net/qnwjs0aw/1/ – Sammy
animateの最初の引数はプロパティ名にする必要があります。それがそれであるはずです。 – Ben