jquery - 随机化 svg 笔划的颜色

标签 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 不是内联 svg,则不能修改它的 css,除非你使用 .在 html 中你调用 svg 文件,然后在 .svg 文件中你可以调用外部样式表并通过这个样式表修改它的 css 属性。问题是我不确定外部样式表是否会有帮助,因为我是用 jquery 而不是 html 和 css 来做的。所以我想知道是否有人可能有任何想法。

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

最佳答案

如果您可以将 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>");

关于jquery - 随机化 svg 笔划的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19387265/

相关文章:

html - 如何在移动设备中显示与桌面相同的 bootstrap 4 卡结构?

javascript - If 语句和 knockout 中的可见绑定(bind)不起作用

jquery - 如何自定义 jquery 移动对话框

css - 为什么 Chrome Dev Tools 不显示 "computed"选项卡?

ios - 这些链接在 iphone 上不起作用

java - 总是需要做静态

使用 toSource() 的 Javascript 对象序列化将特殊字符转换为十六进制代码 - 如何反转?

javascript - 如何使用phantomjs保存 "while"中的文件?

javascript - 创建可抓取的跨域 javascript 小部件

javascript - TypeError : Object. defineProperty 在非对象 JQUERY 上调用