Javascript 拉斐尔动画路径
Javascript Raphael animating a path
我有一条可以形成形状并能够旋转的路径,但我不知道如何让 shape/path 向下移动屏幕。我看过其他解决方案,但似乎无法让它们发挥作用。谢谢
leftRec = paper.path("M400 50 L380 70 420 90 380 110 420 130 400 150 350 150 350 50z");
leftRec.attr("fill","#f00");
leftRec.animate({transform:"r-70,400,150"}, 2000, "ease-in");
leftRec.animate({cy: 600, cx: 200}, 2000);
要同时执行旋转和平移,请使用animate
方法
var leftRec = paper.path("M400 50 L380 70 420 90 380 110 420 130 400 150 350 150 350 50Z");
leftRec.attr("fill","#f00");
leftRec.animate({transform: "T0,500R-90"}, 1000, "ease-in");
先旋转后平移,利用animate
方法中的回调
var leftRec = paper.path("M400 50 L380 70 420 90 380 110 420 130 400 150 350 150 350 50Z");
leftRec.attr("fill","#f00");
leftRec.animate({transform:"r-90,400,150"}, 1000, "ease-in", function() {
this.animate({
path: Raphael.transformPath('M400 50 L380 70 420 90 380 110 420 130 400 150 350 150 350 50Z', 'T-500,0')
}, 1000);
// The below approach could have worked in theory but probably the coordinate system change might
// tamper with the subsequent transform. I am not so sure.
// this.animate({transform: "T0,500"}, 1000)
});
在这两种情况下,形状都垂直移动了 500 像素。
这可能不是最好的解决方案,如果有更好的方法,请更正/改进。
我有一条可以形成形状并能够旋转的路径,但我不知道如何让 shape/path 向下移动屏幕。我看过其他解决方案,但似乎无法让它们发挥作用。谢谢
leftRec = paper.path("M400 50 L380 70 420 90 380 110 420 130 400 150 350 150 350 50z");
leftRec.attr("fill","#f00");
leftRec.animate({transform:"r-70,400,150"}, 2000, "ease-in");
leftRec.animate({cy: 600, cx: 200}, 2000);
要同时执行旋转和平移,请使用animate
方法
var leftRec = paper.path("M400 50 L380 70 420 90 380 110 420 130 400 150 350 150 350 50Z");
leftRec.attr("fill","#f00");
leftRec.animate({transform: "T0,500R-90"}, 1000, "ease-in");
先旋转后平移,利用animate
方法中的回调
var leftRec = paper.path("M400 50 L380 70 420 90 380 110 420 130 400 150 350 150 350 50Z");
leftRec.attr("fill","#f00");
leftRec.animate({transform:"r-90,400,150"}, 1000, "ease-in", function() {
this.animate({
path: Raphael.transformPath('M400 50 L380 70 420 90 380 110 420 130 400 150 350 150 350 50Z', 'T-500,0')
}, 1000);
// The below approach could have worked in theory but probably the coordinate system change might
// tamper with the subsequent transform. I am not so sure.
// this.animate({transform: "T0,500"}, 1000)
});
在这两种情况下,形状都垂直移动了 500 像素。
这可能不是最好的解决方案,如果有更好的方法,请更正/改进。