javascript - 动态编辑设置为背景图像的 .svg 文件

标签 javascript jquery html css svg

我在 div 的背景中添加了 svg 图像。

        div#cover{
            background-image:url('dwm.svg');
        }

我想知道是否有任何方法可以动态编辑此 svg 的某些方面,例如填充、描边等。

最佳答案

您可以尝试将 svg 作为 DOM 的一部分,进行修改,然后将背景设置为从 DOM 中提取的修改后的 svg 的数据 uri。
虽然这可能有点 hacky 但它有效

$('#bg').css('background-image', 'url(data:image/svg+xml;base64,'+btoa($('#svg').html())+')');
$('button').click(function(){
    $('#fill').attr('fill', '#ff00ff');
    $('#bg').css('background-image', 'url(data:image/svg+xml;base64,'+btoa($('#svg').html())+')');
});
<div id="bg"></div>
<div id="svg">[svg data]</div>

http://jsfiddle.net/zSRW5/

如果您不想嵌入 svg,您可以随时使用 ajax 来获取它。

关于javascript - 动态编辑设置为背景图像的 .svg 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23314756/

相关文章:

javascript - 如何组织和分离 EmberJS 模板?

javascript - 转义正则表达式 (JS) 中的一些特殊字符

javascript - 如何在 Angular js中显示行内的行

javascript - 无法从 ReactJS 中的数组获取下拉列表

javascript - 单击后发布 SVG 信息

javascript - 在嵌套 iframe 内使用/安装库

javascript - JQuery:在父容器中显示/隐藏图像

javascript - 父子孙子复选框

html - 我怎样才能一个接一个地 float 三个 wrapper

css - Twitter Bootstrap 在从文件运行和从网络服务器运行之间表现不同