我想在使用時更改圖案的顏色。如何更改使用SVG模式的顏色?
例如,我想在紅色的描邊圈中有一個綠色的圖案。
<svg width="300" height="300" viewBox="0 0 300 300"
xmlns="http://www.w3.org/2000/svg">
<defs>
<pattern id="checked" width="2" height="2" stroke="black" stroke-linecap="square" stroke-width="1" patternTransform="rotate(45) scale(2)"
patternUnits="userSpaceOnUse">
<line x1="0" y1="0" x2="0" y2="2"></line>
<line x1="0" y1="0" x2="2" y2="0"></line>
</pattern>
</defs>
<circle cx="60" cy="60" r="50" stroke="red" fill="url(#checked)"/>
<circle cx="120" cy="60" r="50" stroke="blue" fill="url(#checked)"/>
</svg>
http://codepen.io/anon/pen/RVNmRY
是否有可能這樣做,而不必創建爲每個顏色的新格局?
我已閱讀評論,這可能使用過濾器(https://stackoverflow.com/a/21427316/1981832)。但我不知道如何。
有什麼不對每種顏色的圖案? –
@RobertLongson謝謝。在我的頁面上,用戶應該能夠選擇顏色和圖案進行繪製。每種顏色都有一個圖案意味着每次用戶切換顏色時都必須將新圖案附加到頁面上。這對我來說似乎非常麻煩。但也許我在這裏忽略了一些東西。 – Daniel
將顏色名稱放在模式標識(或數據屬性)中,如果不存在,則創建它。您可以在CSS中設置顏色並更新CSS,但會影響具有該模式的所有現有形狀。 –