随机化svg中风的颜色

时间:2013-10-15 17:23:33

标签: jquery css object random svg

所以我试图在网站上创建一个功能,客户端可以上传一组简单的.svg图像,并声明一组笔画颜色。然后,图像将以图像和笔触颜色的随机组合显示在其网站的背景中。

我想知道这是否可能。我试图做的是通过jquery调用.svg文件,比如

var images = ['01', '02', '03', '04', '05', '06', '07', '08'];
$('<img class="bgImg" src="../../static/images/backgroundImage-' + images[Math.floor(Math.random() * images.length)] + '.svg">').appendTo('#border');

然后使用类似

的内容修改其颜色
$('.bgImg').css({"stroke":"black"}); 

(虽然我想我会创建第二个css颜色变量数组)

问题是我被卡住了,因为你不能修改.svg的css如果它不是内联svg,除非你使用。在html中你用svg文件调用,然后在.svg文件中你可以调用外部样式表并通过这个样式表修改它的css属性。事情是我不确定是否外部样式表甚至会帮助我,因为我用jquery而不是html和css这样做。所以我想知道是否有人可能有任何想法。

这有助于理解如何和svg工作,看看文章的底部: http://css-tricks.com/using-svg/

1 个答案:

答案 0 :(得分:0)

如果可以将svg文件作为xml文本加载,则可以通过字符串操作更改路径或形状上的笔触属性。

一旦修改了svg xml字符串,就可以使用如下数据uri将svg应用为背景图像:

body { background-image: 
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10'><linearGradient id='gradient'><stop offset='10%' stop-color='#F00'/><stop offset='90%' stop-color='#fcc'/> </linearGradient><rect fill='url(#gradient)' x='0' y='0' width='100%' height='100%'/></svg>");