jQuery('img.svg').each(function() {
var $img = jQuery(this);
var imgID = $img.attr('id');
var imgClass = $img.attr('class');
var imgURL = $img.attr('src');
jQuery.get(imgURL, function(data) {
// Get the SVG tag, ignore the rest
var $svg = jQuery(data).find('svg');
// Add replaced image's ID to the new SVG
if (typeof imgID !== 'undefined') {
$svg = $svg.attr('id', imgID);
}
// Add replaced image's classes to the new SVG
if (typeof imgClass !== 'undefined') {
$svg = $svg.attr('class', imgClass + ' replaced-svg');
}
// Remove any invalid XML tags as per http://validator.w3.org
$svg = $svg.removeAttr('xmlns:a');
// Check if the viewport is set, if the viewport is not set the SVG wont't scale.
if (!$svg.attr('viewBox') && $svg.attr('height') && $svg.attr('width')) {
$svg.attr('viewBox', '0 0 ' + $svg.attr('height') + ' ' + $svg.attr('width'))
}
// Replace image with new SVG
$img.replaceWith($svg);
}, 'xml');
});
很好但很大的问题解决方案:
我遇到这个问题很长时间了,当为了减少代码行的好处而更容易附加
svg
时img
,但是你不能直接通过 改变颜色svg path{fill: value}
,但是如果你使用上面的方法,那么上面的方法就更有效了不要鄙视jQuery
。答案来源:@Drew Baker
也就是说,您需要更改 svg 图像的颜色。这可以通过
css
或svg
过滤器来完成CSS 过滤器
HTML
从网络添加到使用标签的黄色铃铛的原始 svg 图像<img>
使用不同的 CSS 过滤器更改颜色
SVG 过滤器
SVG 过滤器比 SVG 过滤器有更多的支持
CSS filter
,可以用来改变颜色,相当多。
下面是一个使用示例
feColorMatrix
有关设置和使用的更多详细信息和可理解的信息,
feColorMatrix
请参阅我们网站的主题
第一个过滤器
id="dodgerFilter"
立即将图标从黄色重新着色为蓝色。悬停时,第二个过滤器会触发
id="redFilter"
,呈现红色。