0

私はこのスニペットを持っています:

$(document).ready(function(){
$(".sidebar .nav li a.animate").hover(function(){
    $(this).animate({textIndent:"133"}, "fast")
}, function(){
    $(this).animate({textIndent:"27"}, "fast")
});
});

基本的にはメニュー項目のアニメーションです。正常に動作しますが、マウスを上から下に移動して何度も逆にすると、アニメーションがまだ進行中に厄介な遅延が発生することがあります。

どうすればこれを防ぐことができますか? イベントがトリガーされた後、イベントをブロックする必要がありますか? これを解決する最善の方法は何ですか? :)

コード例は高く評価されています。

4

1 に答える 1

1

いくつかのstop()を追加します:

$(document).ready(function(){
    $(".sidebar .nav li a.animate").on('mouseenter mouseleave', function(e){
        $(this).stop(true,true)
               .animate({textIndent: e.type=='mouseenter' ? 133 : 27}, "fast")
    });
});
于 2012-12-14T00:42:44.687 に答える