2016-10-15 108 views
1

我有我的我的FabricJS帆布內的容器具有固定的高度/寬度像素。在一邊,我有一個下拉菜單將畫布大小更改爲各種預設。我想要做的是自動縮小,只要我選擇比容器更高和/或更寬的尺寸。因此,例如,如果我的容器div是800x600,並選擇1024x768的畫布大小,我想縮小以便整個畫布仍然可見。相反,如果我選擇較小的尺寸(例如200x200),我想放大100%。FabricJS比例/縮放帆布以適應容器

我找到了this縮放的例子,但無論縮小多少,畫布大小看起來都保持不變。見截圖:

enter image description here

我怎樣才能做到這一點?

enter image description here

正如你可以在這裏看到,與薄紅色邊框的區域是畫布容器。白色的盒子是畫布。

回答

0

您可以使用canvas.setDimensions函數來完成此操作。你向它傳遞兩個論據;第一個是指定改變畫布的高度和寬度的對象,第二個指定是否改變CSS,畫布的實際尺寸或兩者。

例如,canvas.setDimensions({width: 750, height: 750}, {backstoreOnly: true}會將畫布的實際尺寸設置爲750x750,而與顯示無關。

canvas.setDimensions({width: '750px', height: '750px'}, {cssOnly: true})將設置畫布的顯示尺寸爲750x750,無論實際尺寸如何。

我不是100%確定寬度或高度是否需要之後的css或backstore,但這是一個非常簡單的事情來檢查。另外,如果第二個參數沒有傳遞參數,它將改變這兩個參數。