Raphael element.animate(..) - 指定要在动画的每一步执行的回调
Raphael element.animate(...) - Specify a callback to be executed at every step of animation
使用拉斐尔,我必须移动一些连接一些线(边)的圆(节点)。当我更改圆的 (cx,cy) 属性时,我必须刷新连接到该圆的线(使用刷新函数)。
没有动画,一切都很好
circle.attr({
cx : newCx,
cy : newCy
})
refreshEdges()
现在,如果我想使用动画...
circle.animate({
cx : newCx,
cy : newCy
},1000)
。圆开始移动并在 1000 毫秒内到达最终位置。但在动画过程中,连接到该圆的线(边)不会移动,因为未调用刷新功能。
所以问题是:有一种方法可以指定 .animate() 一种 Raphael 将在动画的每一步调用的"步骤"回调?
我知道使用 jQuery 可以将该步骤回调指定为 .animate()...我希望拉斐尔也能做到这一点:)
谢谢!!
我终于想出了这个解决方案...在具有假 css 属性的假 DIV 元素上使用 jQuery.animate()!
$("<div></div>")
.css({ // set initial animation values using "animX", "animY" fake css props
'animX': circle.attr("cx"),
'animY': circle.attr("cy")
})
.animate({ // set final animation values using "animX", "animY" fake css props
'animX': newCx,
'animY': newCy
}, {
duration : 1000,
step : function(now,fx){
if (fx.prop == 'animX')
circle.attr("cx", now )
if (fx.prop == 'animY')
circle.attr("cy", now )
circle.refreshEdges()
}
})
有关更多信息,特别是有关步进功能的信息,请阅读 http://api.jquery.com/animate/
再见!!
我是
HTML5和Raphael的新手,但设法通过反复试验使回调工作:
var rect = r.rect(300, 385, 30, 100, 2).attr({
fill: '#000',
transform: t,
"fill-opacity": .2
}).toFront().click(function () {
s.animate({ transform: t, stroke: c }, 2000, "bounce", function () {
//console.log('muhammad s.a.w');
});
});
您是否尝试过在连接到圆圈的行上使用 animateWith? 您也许可以使用它来解决您的问题。 虽然我不确定你的 refreshEdges() 的代码是什么,所以可能无法使用它。
相关文章:
- 对父作用域的指令更新延迟了一步
- Javascript并不是显示在每一页上
- Parsley.js,多步骤表单,在移动到上一步时跳过验证
- 有没有一种方法可以在所有嵌套循环之后放置一个标签,以便在一步中将它们全部打断
- 在高图表中,每x步只显示标签
- jQuery:试图让动画每3秒发生一次,但没有成功
- 如何禁用在Bootstrap中不完成一步就转到下一步
- JQuery SlideToggle()在放松的每一步都执行函数
- 如何在每一步中使数值数组的增加量更小
- Raphael element.animate(..) - 指定要在动画的每一步执行的回调
- 如何指定每一步滚动移动的像素数
- 如何为jQuery中的每个数组元素附加不同的动画效果?并用2个按钮一个接一个地向前和向后设置动画(后退和下一步)
- 输入数字HTML5:是否有一个事件在每一步都会触发
- 在每一步/单击之后更新引导程序日期时间选择器
- 输出每一行被执行的javascript代码和/或一步一步地执行代码,无论在什么"进程",计时器等代码
- 我试图分析以下js代码.这是一个待办事项列表程序.有人能解释一下每一步发生了什么吗?
- 递增一个值并用innerHTML打印每一步
- 如何在chrome中查看javascript for in循环的每一步
- CasperJS导航在每一步都请求注入脚本
- 多个同步动画,模拟'animate'缓速和一步'调用jQuery集合