2011-03-08 19 views
1

Jquery、どうすればフリッカーを減らすことができますか?

緑色の領域にカーソルを合わせると、2つのテキストフィールドが表示されます。今私が達成したいのは、緑色の領域または入力フィールドの上にマウスを置くと、ちらつきがなくても表示されるはずです。また、テキストフィールドにテキストが入力されていて、フィールドが消える前に遅延やタイマーがある場合は....

これはjqueryでどのように行うことができますか?

+0

は、それが発生していたときにフォーム要素の1ピクセルのエッジの上にマウスを移動。 :) –

答えて

2

、ちらつきを防ぐだけではなく、mouseentermouseleaveを使用するには:

$("#back2").mouseenter(function(){ 
    $("form").fadeIn(100); 
}).mouseleave(function(){ 
    $("form").hide(); 
}); 

と遅延のために、あなたのような何かを行うことができます。

$("#back2").mouseenter(function(){ 
    $("form").fadeIn(100); 
}).mouseleave(function(){ 
    if ($('#inp1').val() != ""){ 
     setTimeout(function() {$("form").hide()}, 500); 
    } else { 
     $("form").hide(); 
    } 
}); 

Here's実施例

更新以下のコメントに対するhoverの使用:

$("#back2").hover(function(){ 
    $("form").fadeIn(100); 
}, function(){ 
    if ($('#inp1').val() != ""){ 
     $setTimeout(function() {$("form").hide()}, 500); 
    } else { 
     $("form").hide(); 
    } 
}); 
+0

または '.hover(funcIn、funcOut)'をショートカットとして修正する方法がわかりません。実例:http://jsfiddle.net/caMvN/3/ –

+0

または['.hover()'](http://api.jquery.com/hover/#hover1)、[例](http:// jsfiddle.net/jensgram/yDjyF/)は、2つのハンドラを引数として取ります。 – jensgram

+0

それはそれを悪化させるようです。マウスを入力フィールドの上に動かすと、ナットになります。 (Chromeでは少なくとも)。 –

1

変更するには、最初の行:

 
$("form").hide().mouseover(function(){$(this).show();}); 
関連する問題