2012-02-19 31 views
2

我用下面的linearGradient元工作:爲的LinearGradient SVG表達座標

<linearGradient 
    inkscape:collect="always" 
    xlink:href="#linearGradient8704" 
    id="linearGradient8774" 
    gradientUnits="userSpaceOnUse" 
    x1="45%" 
    y1="45%" 
    x2="55%" 
    y2="55%" /> 

是否有可能以某種方式使用基本表達式的x/y座標?我希望能夠做這樣的事情:

x1="50% - 20px", 
y1="50% - 20px", 
+1

您可能需要更新問題,以澄清您需要在CSS背景圖片中使用它,因爲這會排除在svg中使用javascript。並且您的目標瀏覽器是任天堂Wii上的Opera。 – 2012-04-25 13:12:20

回答

1

有你爲什麼要去做這樣一個具體的原因是什麼?不要偏離你的原始問題,但我內部的編碼器尖叫使用不同單位的表達式是錯誤的。是否有可能將其中一個值轉換爲其他單位使用JavaScript?喜歡的東西:

var new_x1 = (window.innerWidth/2) + 20; 
document.getElementById('linearGradient8774').setAttribute('x1', new_x1 + 'px'); 
+0

我正在嘗試更好地近似插入效果。你可以在http://graphicdesign.stackexchange.com/questions/6028/svg-downward-inner-bevel看到我的原始問題。我正在製作Nintendo Wii的網絡界面圖形,它不支持CSS3,但支持DIV元素的SVG背景圖像。我需要一個動態調整大小的盒子,但固定的邊框半徑(完成)以及與這些固定大小的角落相匹配的邊框漸變,效果看起來很好。我對SVG不太瞭解......我可以在SVG文檔中使用JS嗎?或者JS運行在託管SVG的頁面上? – Brad 2012-04-25 00:33:00

+0

你實際上可以做到這兩點。如果你有一個控制svg的頁面,我會建議添加一些腳本,否則,你可以將腳本標籤(或外部文件)嵌入到svg中。 (見這裏,靠近頂部:http://pilat.free.fr/english/routines/js_dom.htm) – Jlange 2012-04-25 16:36:51

1

在演示文稿(如CSS定義的),則可能成爲可以使用計算()表達式屬性在未來,但它沒有任何SVG規範的一部分,而據我所知,沒有實現在支持這一點的那一刻。

如果您使用內聯svg和javascript來計算所需的值,然後將svgs放在需要使用CSS的位置,您可能可以得到此工作。