2012-05-09 13 views
0

マウスをホバリングしてエフェクトが消えない間に入力ボックスをクリックすると、フォーム全体に不透明効果を適用しようとしています。一方、#search-inputがクリックされた場合、それは場合にのみ、あなたがオーバーしていない作品現時点でjQueryは、フォームがホバリングされたり入力ボックスがクリックされた場合にアニメーションを適用します。

$('form#search').hover(function() { 
    $(this).stop().animate({"opacity": 1}); 
},function() { 
    $(this).stop().animate({"opacity": 0.6}); 
}); 

<form id="search"> 
    <input id="search-input" type="text" value="Search" /> 
    <input id="search-submit" type="submit" value="" /> 
</form> 

そして、このjQueryの:私は、次のHTMLを持っている瞬間

マウスが画面の他の場所にある場合、この最終部分を追加するにはどうすればよいですか?

これは、親セレクタが存在しないため、入力のみがフォーカスされている場合に、フォーム全体に不透明効果を適用できないため、CSS3ではできません。

Pseduoコード決勝ゴール

$($('form#search').hover(), $('form#search input').focus()).functionOn(){ 
    $('form#search').stop().animate({"opacity": 1}); 
}, functionOff(){ 
    $('form#search').stop().animate({"opacity": 0.6}); 
}); 

答えて

2

コードは仕事を終えるのにかなりうまくいくはずです。これは、現在入力を編集している間に他の人がマウスを外した場合や、入力を編集して別の「フェード可能な」divをクリックした場合、新しい「フェード可能な」divに適切に移行する必要があります。

あなたのアニメーションは欠けているものだけですが、私はあなたのアニメーションにaddClass/removeClassを変更することができると思います。

これには時間がかかりましたので、うまくいけば助けてください! 、おかげで実際に、でも私はいつも試してみて、できるだけCSS3をできるだけ多く利用するにもかかわらず、と考えていなかった良い点だ

http://jsfiddle.net/vpz2S/

4

あなただけCSS3でこれを行うにしようとしないのはなぜ?あなたは:ホバーと:フォーカスでそれを行うことができます。

+0

。 – Dan

+0

そして、CSS3を使うと、人々はJSなしでそれを使うことができます。 –

+0

あなたはトランスミッションを使用していない場合、私はcssでアニメーションを取得していませんが、私はどのくらい広くサポートされているかわからないですか? – Dan

関連する問題