@Atllantis

Как изменить размер холста не растягивая все отрисованные элементы при этом (в konvajs)?

Только познакомился с konvajs и сразу влип в один крайне простой но нереально сложный для решения момент.
Собственно проблема в том, что при изменении размера холста (canvas) всё его содержимое растягивается, хотя должно оставаться как есть, на своих местах не меняя позиции или скейла (вообще ничего не должно меняться - только размер холста).
П.С. Раньше использовал paperjs и там никаких проблем с этим не было, сейчас решил попробовать kanvajs, т.к. тут больше возможностей, но, казалось бы, элементарное действие и не могу сделать. О_о

Что бы я не делал, никак не получается добиться желаемого эффекта.
Холст через konva (установка параметров только в stage, без изменений напрямую в разметке) не хочет менять размер и вообще никакого эффекта не оказывает. Но при этом, если менять размер напрямую в разметке (с установкой всех параметров в stage, и последующим вызовом draw - хотя и без всего этого результат тот же), то всё просто растягивается.
stage.attrs({
     width,
     height
   })
// или
  stage.width = width
  stage.height = height
// и всё т.п. ... - всё не работает, либо я ещё не понял как оно должно работать.

  stage.batchDraw();


Кто-то поможет мне с этой элементарнейшей проблемкой?
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. Проверьте CSS-стили stage сразу после его создания (ещё можно глянуть исходник либы).
2. Выставите свои через JS.
3. Измените размер холста.

PS: для чего Вы используете библиотеки? может проще на чистом канвасе решить Вашу задачу?
Ответ написан
@grinat
Cоздай новый холст с нужными размерами и вхерачь туда старый канвас через context.drawImage
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы