【发布时间】:2011-03-20 17:03:48
【问题描述】:
我正在尝试使用 Keith Wood 的 plugin 为从外部 SVG 加载的一组路径的填充颜色设置动画。
首先我将 SVG 导入到 div 容器中:
$(document).ready(function() {
$('#header-main').svg({loadURL: 'header.svg'});
var svg = $('#header-main').svg('get');
});
SVG 文件如下所示:
<svg>
<g id="group1">
<path d="M0,22.943V0.223h1.413v22.721H0z"/>
<path etc../>
</g>
</svg>
我可以像这样更改组或单个路径的填充颜色:
svg.style('#group1 {fill: black}');
现在,当我尝试像这样为路径设置动画时:
$('path').animate({svgFill: 'blue'}, 500);
或 $('#group1').animate({svgFill: 'blue'}, 500);
或任何其他选择器,例如路径的 id,什么都不会发生。 但如果我要创建一条路径,并像这样对其进行动画处理:
var path1 = svg.createPath();
svg.path(path1.move(50, 90).curveC(0, 90, 0, 30, 50, 30).
line(150, 30).curveC(200, 30, 200, 90, 150, 90).close(),
{fill: 'none', stroke: '#D90000', strokeWidth: 10});
$('path').animate({svgFill: 'blue'}, 500);
我创建动画的路径,但从 header.svg 文件导入的其他路径什么都不做。
我在这里做错了什么,还是插件无法为外部 svg 设置动画?
【问题讨论】:
标签: jquery svg jquery-animate