我正在尝试使用 jQuery 为 svg 对象设置动画。动画应该是这样的:
- 单击主要对象-> 向上翻译主要对象。
- 单击另一个对象->从实际位置开始以另一种方式翻译主要对象。
看看这个http://jsfiddle.net/MaxMarkson/khZqW/2/
$('#ellipseRed').click(function() {
$(this)
.css({"min-height": 0})
.animate(
{"min-height": -150},
{duration: 1000,
step: function(top){
this.setAttribute("transform", "translate(0,"+top+")");
}
}
);
});
$('#ellipseBlue').click(function() {
// Getting
var xforms = $('#ellipseRed')[0].getAttribute('transform');
var parts = /translate\(\s*([^\s,)]+)[ ,]([^\s,)]+)/.exec(xforms);
var firstX,firstY;
if(parts == null){
$('#ellipseRed')[0].setAttribute('transform','translate(0,0)');
firstX = 0;
firstY = 0;
}
else{
firstX = parts[1];
firstY = parts[2];
}
// Setting
//
var animation = {};
animation.x = firstX + 200;
animation.y = firstY - 100;
$('#ellipseRed')
.css({"min-height": 0})
.css({"left":0})
.animate(
{"min-height": animation.y},
{"left": animation.x},
{duration: 1000,
step: function(top, left){
this.setAttribute("transform", "translate("+left+","+top+")");
}
}
);
});
主要对象是红色椭圆,通过单击它应用的翻译工作正常,其他动画不起作用,我不知道为什么。
谢谢!