Не зная специфики вашего окончательного приложения, я бы порекомендовал избегать анимации размера холста, если вы можете. Как вы, вероятно, знаете, если вы измените размер элемента canvas, все, что на нем хранится, будет стерто. Это означает, что для анимации размеров необходимо постепенно изменять ширину и / или высоту, перерисовывая весь холст на каждой итерации. Для настольного компьютера это, вероятно, не является большой проблемой. Мобильные устройства будут бороться, хотя.
Вместо этого я бы предложил вам подделать анимацию, увеличив размер элемента контейнера (с рамкой, цветом фона и т. Д., Чтобы анимация была очевидной). Затем, когда анимация будет завершена, сохраните текущие данные холста во временный объект, увеличьте размер холста и верните на него старый контент.
Если вы хотите анимировать размеры холста, чтобы показать контент, который уже присутствует на более крупном теоретическом холсте (т. Е. У пользователя есть небольшое окно, в котором обрезается весь холст), вам лучше поиграть с вашим CSS * 1005. * и height
вместе со свойством overflow: hidden;
. При таком подходе вы будете редактировать свой полный холст во время всех операций рисования, но анимация размера вашего окна просмотра будет простой и плавной.