2013-04-24 12 views
11

マウス出力イベントでCSSトランジションを開始する前に遅延を適用しようとしています。私のCSSコードは以下の通りです。マウスが外れるとCSSトランジションが始まる前に時間遅延を適用する方法を教えてください。私はCSSでマウス出力に遅延を適用したい

ユーザーがマウスポインタをメニューから移動した後、しばらく(たとえば3秒間)メニューが安定した状態に保たれるようにしたいと考えています。

.timnav li .dropdown { 
    width: auto; 
    min-width: 0px; 
    max-width: 230px; 
    height: 0; 
    position: absolute; 
    overflow: hidden; 
    z-index: 999; 
    background:rgba(255, 255, 255, 0.8); 
    } 

.timnav li:hover .dropdown { 
    min-height: 60px; 
    max-height: 500px; 
    height: auto; 
    width: 100%; 
    padding: 0; 
      -webkit-transition: delay .5s ease-in-out; 
     -moz-transition: delay .5s ease-in-out; 
     -o-transition: delay .5s ease-in-out; 
} 

.timnav li .dropdown ul { 
    margin: 0; 
    margin-top:7px; 


} 

.timnav li .dropdown ul > li { 
    display: block; 
    width: 100%; 
    float: left; 
    text-align: left; 
    height: auto; 
    border-radius: none; 
    padding-bottom:2px; 
} 


    .timnav li .dropdown .dropdown2{ 
    display: none; 
    width: 100%; 
    float: left; 
    text-align: left; 
    height: auto; 
    border-radius: none; 
} 

    .timnav li .dropdown ul > li:hover .dropdown2{ 
    display: block; 
    width: 100%; 
    float: left; 
    text-align: left; 
    height: auto; 
    border-radius: none; 

} 

    .timnav li .dropdown .dropdown2:hover { 
    display: block; 
    width: 100%; 
    float: left; 
    text-align: left; 
    height: auto; 
    border-radius: none; 


} 


    .timnav li .dropdown .dropdown2 li a { 
    display: block; 
    padding-left:7px !important; 
    height:6 !important; 
    padding-top:8px; 
    background: url(../images/nav-bg.jpg) repeat; color:#fff; 

} 


.timnav li .dropdown ul > li a { 
    display: block; 
    line-height: 26px; 
    height: 22px; 
    padding: 10px; 
    background: url(../images/nav-crrent.jpg) repeat; color:#FFFFFF; 

} 

.timnav ul .dropdown ul li:first-child a { 
    border-radius: 0; 
} 

.timnav li .dropdown li a:hover { 
    background: url(../images/nav-bg.jpg) repeat; color:#000; 
} 

答えて

21

を実証するfiddleは次のように、構文は次のとおりです。

transition: all 0.5s ease-in-out 3s; 

ので

transition: <property> <duration> <timing-function> <delay>; 

構文は、すべてのプレフィックスに対して同じですバージョンも。

私はこれをデモにしました。なぜなら、アイテムを遅れずに表示させるために少しトリッキーなことをする必要があるからです。

li ul { 
    opacity: 0; 
    transition: all 0.5s ease 3s; 
} 

li:hover ul { 
    opacity: 1; 
    transition: all 0.5s ease 0s; 
} 
+0

ありがとうございますが、うまくいかない、あなたは私にwebkitの遅延を埋め込むべきか教えてください、私にcss codをチェックしてください。ライブリンクが必要な場合は、ここに投稿します。 –

+0

シンプルなJSFiddleデモへのリンクを追加しました。構文は、 '-o'か' -webkit'など、すべてのプレフィックスで同じです。 – Fenton

+0

Thanks Steve Fenton、 これは機能していますが、全体的には追加されていないため、ドロップダウンはすばやく隠れています。 とクロムオンのマウスのドロップダウンで切り取って切り取ります。全体を表示していません。 私を助けることができる場合は、ウェブサイトのURLをお送りします。 –

6

CSSにはtransition-delayというプロパティがあります。これをコードに追加するだけで、目的の効果が得られます。速記遷移プロパティの目的のために

transition-delay:3s; 

、ここだからあなたの場合には、それはこの

div:hover { 
 
    -webkit-transition: .5s ease-in-out 3s; 
 
    -moz-transition: .5s ease-in-out 3s; 
 
    -o-transition: .5s ease-in-out 3s; 
 
    transition: .5s ease-in-out 3s; 
 
    color: red; 
 
    cursor: pointer; 
 
}
<div>Hover me. There is a delay!</div>
ようになり

transition: <property> || <duration> || <timing-function> || <delay> [, ...];

を、それを合計画像です

ここでは、遷移に遅延を追加することができます

+0

ありがとうございますが、動作しません。どこでwebkitの遅延を埋め込むべきか教えてください。私にcss codをチェックしてください。ライブリンクが必要な場合は、ここに投稿します。 –

+0

@TimJohn何が問題なのですか? –

+0

また、アンフィックスされていないバージョンも使用してください(IEサポートも追加されています)。 (そして、Chrome 26、Firefox 16、Opera 12.1はすべて「接続」されていないので、少なくとも '-moz-'は必要ないかもしれません)。 – Ryan

0

することができます:ホバーがある場合

http://jsfiddle.net/pgqM2/

トリックにはホバーがないとき3S遅延を追加するトランジションを再定義するのではなく、0遅延を持つことですcss3プロパティー transition-delayを使用して、cssの実行を遅らせる。 "Try it yourself"をクリックすると、その例が表示されます。

+0

ありがとうございますが、動作していない、私はどこに私はWebkitの遅延を埋め込む必要があります教えてください、私にcss codsを確認してください。ライブリンクが必要な場合は、ここに投稿します。 –

2

ディスプレイなしの場合はcssトランジションを使用できません。ディスプレイなしのソリューションのみがjsです。

関連する問題