jquery attr 工作,但 Animate 失败



我有一条id='slope'的svg行。我想通过更改 y1 和 y2 值来更改斜率。这工作正常:

$('#slope').attr({y1:10});
$('#slope').attr({y2:30});

正如预期的那样,这条线会改变角度,因此它从 y=10 开始,到 y=30 结束。但是,我无法对其进行动画处理。这给了我一个错误,声称 y1 和 y2 是只读属性:

$('#slope').animate({y1:10});
$('#slope').animate({y2:30});

这是 jquery 中的错误,还是 jquery 无法对一行的 y1 和 y2 进行动画处理。我用圆圈的 cx 和 cy 属性对此进行了测试,它工作正常。所以,我知道jquery可以动画svg元素的位置。出于某种原因,它无法从我所看到的中做台词。

我正在使用jquery 3.4.1,以防这是一个错误。

JQuery的动画描述是:

说明:执行一组 CSS 属性的自定义动画。

而 SVG 行的 x 和 y 属性正是属性。

将来的规范可能会将"x1"、"y1"、"x2"和"y2"属性转换为几何属性。目前,它们只能通过元素属性指定,而不能通过 CSS 指定。

它们不是CSS属性,因此jQuery不会对它们进行动画处理。如果你想为线条设置动画,你需要使用SMIL或javascript(或内部使用SMIL或javascript的库(。

有点令人困惑的是,SVG 2规范使circle的cx和cy映射CSS属性而不是属性。在SVG 1.1中,它们也曾经是属性。

最新更新