由于缺乏 IE 对动画的支持(感谢 IE),我正在构建一个 SVG 并在 snap.svg 中对其进行动画处理。我最基本的形式是一个五边形,我想在悬停时旋转,在鼠标移出时它会自行重置。代码位于下面的小提琴中(显然这是真实事物的缩减版本,但仍然清楚地显示了错误)
JS如下:
// Set up snap on the svg element
var svgElement = Snap("#svg");
// Create the hover on and off events
var hoverover = function() {
svgElement.select('#pentagram-one').stop().animate({transform: 's1r72,500,515'}, 1000);
};
var hoverout = function() {
svgElement.select('#pentagram-one').stop().transform('s1R0,500,515');
};
// Set up the functions for hover in and out
svgElement.select('#pentagram-one').hover(hoverover, hoverout);
此行为的小提琴演示:http: //jsfiddle.net/kfs8o9mw/
五边形在第一次悬停时按预期旋转,然后悬停。但是,当第二次这样做时,五边形会放大和缩小一点,这是完全出乎意料的(它最终以正确的大小结束,但在动画期间却不是)。我已经能够在 IE(10)、Chrome 和 Firefox 中复制它。
这是 snap.svg 中的错误还是代码中有问题?
提前致谢