我刚刚在jQuery中创建了一个简单的,连续的bounce effect,但我觉得代码不是全部优化的,而是希望改进它。改善这个连续的jQuery动画
var $square = $("#square");
bounce();
function bounce() {
$square.animate({
top: "+=10"
}, 300, function() {
$square.animate({
top: "-=10"
}, 300, function() {
bounce();
})
});
}
$square.hover(function() {
jQuery.fx.off = true;
}, function() {
jQuery.fx.off = false;
});
所有我所做的基本上是建立,增加了+10到顶部的元素坐标的动画,并作为一个回调函数,我减去10从顶部坐标..
这会产生(几乎平滑)反弹效果,但我感觉可以改进。
此外,我想停止动画mouseenter
,并让它继续mouseleave
。
stop(true, true)
没有工作,也没有dequeue()
所以我使出所有打开动画效果关闭使用jQuery.fx.off = true
(愚蠢的,不是吗?)
我会很感激这是如何能够优化任何反馈。
这是jsFiddle。
编辑:我刚刚意识到,jQuery已经开始抛出too much recursion
错误时禁用和重新启用效果。
由于提前,
马尔科
我想,通过调用反弹()内本身的回调,在过多的递归误差产生较大的堆栈跟踪,因此结果。 – softcr 2010-08-31 20:12:40
递归太多的问题是递归太多。 – 2010-08-31 20:26:25
是@Neil - 为了理解递归,你必须先理解递归。 – Marko 2010-08-31 20:59:52