2012-01-06 10 views
-3

私はこれを検索しましたが、私の問題を完全に解決した解決策は見つかりませんでした。タイマを使って、他のdivにカーソルを置いたときにdivを下に移動

私はお互いの上にある2つのdivを持っています。 div#2は表示されません(display:none)

私が欲しいのは、div#1の上にマウスを置くと、div#2が現在の位置で下にスライドすることです。

div#2にホバーしているときにdiv#2を開いたままにし、div#2のホバー状態を5秒以上離してdiv#2を再びスライドさせます。

a fiddleは私のdivポジションを説明しました。

+0

JQueryのようなサードパーティ製のJavaScriptライブラリを使用することは許可されていますか?それはあなたのためのものを簡単にすることができます。 – Kyle

+0

はい、私は許可され、私は他のjavascript/css3ソリューションを試してみました。しかし、すべては、div#2がサイトの横に隠れていて、横からスライドする必要があります。私はそれを開いて、マウスがdiv#2から離れているときにタイマーを設定したいと思う。 – Augus

+0

cssアニメーションを使用して、純粋なhtml/css3ソリューションが可能です:http://leaverou.github.com/animatable/ –

答えて

2

コードは簡単です。あなたが望むことをする1つの方法は、グローバル変数をsetTimeout関数とペアにすることです。タイムアウトは、マウスが5秒後にdivからまだ離れているかどうかをチェックし、そうであれば、それをスライドさせて見えなくします。

$('.button').click(function() { 
    $('.showme').slideDown(); 
}); 

$('.showme').mouseout(function() { 
    window.isoverdiv = false; 
    setTimeout(function() { 
     if (!window.isoverdiv) { 
      $('.showme').slideUp(); 
     } 
    }, 5000); 
}); 

$('.showme').mouseover(function() { 
    window.isoverdiv = true; 
}); 

+0

これは私のアイデアを得ていますが、div#1のホバー上でそれをスライドさせることは可能ですか?今すぐクリックすると開きます。そして、それは上から滑り落ちます、divの両方を折り返して、そのdivの上から開いてスライドできますか? (私はマージントップをクリアしたいからです)。 – Augus

+1

最初の行に: 'ホバー'と 'クリック'を置き換えます –

+0

私はあなたの入力で遊んで、これに来た:http://jsfiddle.net/TxnDd/3/完璧に動作し、正確に何が必要です。大いに感謝する! – Augus

0

は私がのdiv#1へのdiv#2を移動し、これは私が唯一のCSSでこれを行うには許可保つためのjQueryを使用した http://jsfiddle.net/57Shn/

CSS

.button {width:100px; height:50px; position:fixed; background-color:blue; margin-top:30px;} 
.button:hover .showme {display:block} 
.showme {width:100px; height:200px; position:fixed; background-color:red; display:none; margin-top:30px;} 

HTML

<div class="button"> 
    touch me 
    <div class="showme">show me</div> 
</div> 
+0

あなたの新しいコメントを見て、その明確なこれはあなたが欲しいものではありません。あなたはあなたの質問があまりよく書かれていない、または考え出されていないためにおそらくあなたがdownvoted(私ではない)になってきています、そして、あなた自身がこれを理解することから抜け出そうとしているように思われます。 –

+0

まあ、私の問題は本当に解決していませんでした。最初はスライドさせたい、showme divはボタンdiv以上にする必要があり、3番目はdiv#2のタイマーが必要です。それを閉じる。 – Augus

0

CSSのみの溶液:(摺動しない)

<div class="outer"> 
    <div class="one">Hover</div> 
    <div class="two">Hello World!</div> 
</div> 

CSS:

.two { display: none; } 
.outer:hover .two { display: block; } 

JS溶液:

$(function() { 
    $('.two').hide(); 
    $('.outer').hover(function() { $('.two').stop().slideDown(); }); 
    $('.outer').mouseout(function() { $('.two').stop().slideUp(); }); 
}); 
+0

これは私の答えのコンセプトのより簡潔な表現です –

+0

"JavaScriptを使って" < - あなたはjQueryの意味ですか? –

+0

あなたのご意見に感謝しますが、スライドする必要があります。( – Augus

関連する問題