2011-04-04 20 views
0

我有一個SVG圖像,它適合其父親<object>尺寸。通過更改currentScale和currentTranslate屬性來縮放圖像。如何縮放圖像以按預期大小顯示並將其居中在視口中?顯示放大的SVG在設計大小

示例代碼:

<object width="500" height="300" data="pic.svg"> 
    <!-- The image will scale to be 300px heigh, 
     I need it to be shown at 32x32 and centered in the viewport, 
     but could be zoomed to any size. 
     Setting width and height attributes will crop the viewable area to 32x32, 
     so we can't use this solution. 
    --> 
    <svg viewBox="0 0 32 32" ... > 
</object> 
+0

要說清楚,這是您所詢問的''標記的備用內容?在這種情況下,您應該注意''元素自己設置一個視口,因此您需要指定該視口(使用width和height屬性或通過css寬度/高度)。 – 2011-04-05 07:27:37

+0

不,這裏的''只用於演示,不是回退,而是'' – 2011-04-05 09:16:06

回答

1

好的,我找到了解決方案。爲此,我從width/height/viewbox(取決於哪個可用)獲得了預期的大小,使viewBox等於可用視口的大小(即包含<object>標記),並更改了viewBox屬性的x/y值以便圖像看起來位於視口的中心,並且如果它們存在,則移除寬度和高度屬性。

我在我的Opera SVG Viewer widget中使用這個,你可以看到我的SVG縮放庫here

0

設置viewBox屬性包含內容的區域(以當地SVG座標)要顯示,但設置SVG的heightwidth屬性的數量您希望它在網頁上顯示的像素。

+0

中的DOM它被寫在上面的代碼中,width和height屬性會裁剪可視區域,不能用於我的情況。 – 2011-04-05 06:03:14

+0

@SpadarShut您是指「」或參考的「」元素上的屬性。你說的話對我沒有意義; 'viewBox'和'width/height'的交互作用是控制SVG圖像的'縮放'。 – Phrogz 2011-04-05 12:47:00

+0

我在說引用svg的屬性。通過滾動來動態縮放圖像。由於容器''具有500x300的尺寸(在本例中),具有視框和無寬度/高度屬性的svg最初將被縮放以適應容器並且在任意縮放後將'currentScale'設置爲1, '高300px。我需要找到一種方法來縮小圖像(或在)以顯示其視圖值的大小,在這種情況下爲32x32。 – 2011-04-05 20:16:21