【发布时间】:2014-03-28 04:01:49
【问题描述】:
我正在尝试根据鼠标位置动态旋转 SVG 中的渐变,除了这一行之外,一切正常。问题是我似乎无法让 jQuery attr 方法工作。 setAttribute 可以很好地替换属性 rotate(#,#,#) 内的 gradientTransform 但 attr 不能。我真正遇到问题的部分是我可以使用attr 更改其他属性(如小提琴中的第三个示例)。
http://jsfiddle.net/samt/8yUNL/
这个有效
mainLogoFill[0].setAttribute('gradientTransform', 'rotate(45,100,100)');
这个没有
mainLogoFill.attr('gradientTransform', 'rotate(90,100,100)');
这个把我扔了..为什么它有效?
mainLogoFill.attr('x1', '100');
【问题讨论】:
-
@jfriend00 不! prop() 方法也不起作用。
-
SVG 是基于 XML 的,所以attribute names are case sensitive.
-
@RobG 是的,jQuery 尝试检测它是否处于 XML 模式,但它的工作并不理想 ;-)
标签: javascript jquery svg attr setattribute