我试图将对象旋转一个可变的度数来表示一个表盘。作为第一步,我尝试执行以下操作:
window.onload = function() {
var paper = new Raphael(document.getElementById('canvas_container'), 500, 500);
var circle = paper.circle(100, 100, 80);
var arrow = paper.path("M 100 100 l -56.5 56.5 z");
arrow.attr({stroke: '#0a0', 'stroke-width': 3});
for(var i=0;i<=100; i+=1){
rotate_cw(arrow);
}
}
function rotate_cw (element){
element.animate({transform:"r-1,100,100"}, 10);
}
动画本身可以工作,但我无法使用外部函数。 任何解决方案或解决方法?
答案 0 :(得分:1)
您的代码正常运行 - 动画正在发生且功能正常运行 - 但它不会像一样,因为它有两个原因:
for
循环恰好发生,或多或少瞬间发生。因此,在解决了第一个问题之后,你会发现动画只是跳到最后,不管10毫秒的延迟,因为它们都或多或少同时被调用。它在几乎1毫秒的空间内调用该函数100次,每个函数调用需要10 ms来设置动画,因此它在不到11毫秒的时间内达到了第100次旋转的结束 - 而不是你想要的1000毫秒。
animate
回调参数这是一个我认为更像你所希望的例子: