2011-12-28 4 views
0

Gmailのようなサインアウトメカニズムがあります。ユーザー名(右上)にカーソルを合わせると、「ログアウト」リンクを含むメニューが表示されます。ユーザ名はフローティングリストにあり、スライドアウトするメニューは内側のリストにあります(フローティングではありません)。スライドアウト/インはjQueryを使用して実行されます。Gmailのようなログアウト

これは、行うことになっているものである:

  • ユーザ名がオンに推移したとき、内側メニューが(目に見えるようになる)を滑落。
  • マウスが内側のメニューに行くと、内側のメニューが表示されたままになります。
  • マウスが他の場所に移動している場合は、内側のメニューが元に戻ります(目に見えなくなります)。

これは、現在何をするかです:ユーザ名がオンに推移したとき

  • インナーメニューが滑り落ちます。
  • カーソルがユーザー名から離れているときは、カーソルがどこにあるかにかかわらずメニューが上にスライドします。

知覚ソリューション:私はカーソルが内側のリストの上にある、オープン内側のリストを維持するかどうかを確認するどこかif句があるはずと信じて、それは私が困惑なる部分です。 EDIT

HTML::

<ul id="user_spot"> 
    <li><a href="#"><span class="username">username</a> 
     <ul id="user_spot_links"> 
      <li><a href="/home/sign?out=y">Sign Out</a></li> <br /> 
     </ul> 
    </li> 
</ul> 

CSS:

ul#user_spot li { 
    float:left; 
    position:relative; 
} 
ul#user_spot_links { 
    position:absolute; 
    top:20px; 
    display:none; 
} 
ul#user_spot_links li { 
    float:none; 
    clear:both; 
} 

JS:

01ここ
は、現在のコードです
$('ul#user_spot li a').hover(function() { 
$('ul#user_spot_links').slideDown('slow'); 
    return false; 
}, function() { 
    // this is where I believe the needed code should be" 
    $('ul#user_spot_links').slideUp('slow'); 
}); 
+0

スクリプトを書いてもらいたいですか?私はそれがstackoverflowのポイントだとは思わない。 StackoverflowはQ&Aサイトです。 – omnidan

+2

あなたの質問にいくつかのコードを含めることができますか?現在のソリューションとこれまでに試したことをお見せください。 – PPvG

+0

私は誰も私にスクリプトを書く必要はありません。スクリプトを自分で書く方法を理解する必要があります。私はロジックを処理するのに助けが必要です。現在のコードがもう一度表示される –

答えて

4

あなたにはJSは必要ありません。

チェックこのフィドル:http://jsfiddle.net/PaKnc/

基本的に滑り落ちるULは、あなたが上にマウスを移動LIの子です。 CSSの子のCSSプロパティを操作できます。例えば

ここ
#parent #child { 
    style1; 
} 

#parent:hover #child { 
    style2; 
} 

style1style2は全く異なる場合があります。このケースでは、displayプロパティを変更することでこれを利用しています。

+0

ありがとう。これで問題は解決しました。アニメーション効果が好きなので、私はまだそれのためにJSを使用する必要があります。しかし、あなたは確かに正しい方向に私を指摘して、私は今それを修正することができます。ありがとう。 –

+0

あなたは大歓迎です。 :) – techfoobar

+0

CSSトランジションのみを使用して、メニューのアニメーションの更新を確認してください。 http://jsfiddle.net/PaKnc/1/ [注:これはIEで動作しません] :) – techfoobar

1

ユーザー名アンカーを終了してドロップダウンにカーソルを置く必要があるときに問題が発生します。単純な解決策は、aの代わりにホバーセレクタをliに変更することです。ドロップダウンの上にホバーしている間も、終了しません。

関連する問題