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があります。
too much recursion
編集:効果を無効にして再度有効にすると、jQuery がエラーをスローし始めたことに気付きました。
前もって感謝します、
マルコ