2012-05-12 14 views
1

バグはありませんが、私はこの種の紛争に対処するための最善のヒントを知っています。このループ効果を止める方法。ここでmouseenter、mouseleave and overlay

は、基本的な例である: http://jsfiddle.net/aC5bV/

$('a').on({ 
    mouseenter:function(){ 
    $tooltip=$('#tooltip'); 
    $tooltip.animate({ 
     top:20, 
     left:20 
    },300); 
    }, 
    mouseleave:function(){ 
    $tooltip=$('#tooltip'); 
    $tooltip.animate({ 
     top:50, 
     left:50 
    },300); 
    } 
});​ 
+1

[jQuery:複数のロールオーバーでアニメーションを繰り返すのをやめますか?](http://stackoverflow.com/questions/9113568/jquery-stop-repeating-animation-on-multiple-rollovers)と[jQueryアニメーションループの停止](http://stackoverflow.com/q/9277084/218196)他... –

+0

はい別の停止()の質問しかし、ここでは、最初のアニメーションを開始する必要があります、良いスタートしかし、完璧ではない... –

+0

...ちょうど完了時にオーバーテストvarを追加する必要があります!私はこれを行い、投稿するつもりです! –

答えて

0

最後に、私は(hereから)これを見つけた

$(document).mouseover(function(e) { 
    if (e.target == $("a").get(0) || e.target == $("#tt").get(0)) { 
     $("#tt").animate({top:0,left:0},300); 
    } 
    else { 
     $("#tt").stop().animate({top:200,left:200},300); 
    } 
}); 

http://jsfiddle.net/aC5bV/13/

これが改善できる場合には、私はより良いを受け入れます答え!

1

このループ効果を停止する方法は?

.stop()を使用してください。最良の効果については、パラメータのマニュアルを参照してください。

jsFiddle Demo

$('a').on({ 
    mouseenter:function(){ 
    var $tooltip=$('#tooltip'); 
    $tooltip.stop().animate({ 
     top:20, 
     left:20 
    },300); 
    }, 
    mouseleave:function(){ 
    var $tooltip=$('#tooltip'); 
    $tooltip.stop().animate({ 
     top:50, 
     left:50 
    },300); 
    } 
});​ 

変数を定義するときにも、あなたはそれ以外の場合はyou get a global variablevarを使用する必要があります。そしてそのdooms the whole worldと殺して子猫。

+1

rofl。子猫を殺す。一度しか使用していないので、varを定義する必要はありません:) – OptimusCrime

+0

@OptimusCrimeそうです。しかし、定義する場合は、正しく定義してください。 – kapa

+0

http://jsfiddle.net/aC5bV/3/私はstop()、stop(true)、stop(true、true)を知っていますが、完璧ではありません。醜いカーソルが点滅し、私は何かを忘れていますか? –

1

使用停止()関数...

$('a').on({ 
    mouseenter:function(){ 
    $tooltip=$('#tooltip'); 
    $tooltip.stop().animate({ 
     top:20, 
     left:20 
    },300); 
    }, 
    mouseleave:function(){ 
    $tooltip=$('#tooltip'); 
    $tooltip.stop().animate({ 
     top:50, 
     left:50 
    },300); 
    } 
}); 
関連する問題