このタイプのスライドダウンを実現したいのは、ホバーするのではなく、クリックでスライドダウンをトリガーし、もう一度クリックして逆のスライドトリガーをトリガーするスクリプトの種類が必要だと思います。私はdiv thatsを非表示にし(上部:-400px、ページの上部)、ボタンがクリックされたときにスライドダウンして上部に配置します:0;
HTML
<div class="container"><div class="one">Hover me to reveal new div</div>
<div class="two">I slid!<br>And I am higher than the div before me...</div>
</div>
CSS
.container {
overflow:hidden;
height: 60px;
}
.one {
position: relative;
top: 0;
background-color: lightblue;
z-index: 1;
}
.two {
position: relative;
top: -40px;
background-color: yellow;
z-index: -1;
-webkit-transition: top 1s;
-moz-transition: top 1s;
-o-transition: top 1s;
transition: top 1s;
}
.one:hover + .two {
top: 0px;
}
これが実際のフィドルです http://jsfiddle.net/8ZFMJ/2/ -どんな助けでもいただければ幸いです。
私はslideToggleを使ってみましたが、これは私が達成したいスライドダウンのタイプではない「拡大」効果を作成します。
どうもありがとう。
これを試してください http://jsfiddle.net/webcarvers/8ZFMJ/34/
これを削除してください:
.one:hover + .two {
top: 0px;
}
これをjQuery Jsで追加します
$(document).ready(function(){
var clicked=true;
$(".one").on('click', function(){
if(clicked)
{
clicked=false;
$(".two").css({"top": 0});
}
else
{
clicked=true;
$(".two").css({"top": "-40px"});
}
});
});
ほぼ同じ(他の回答と同じ)で、複数のコンテナーがある場合にも機能します。
$('.one').on('click',function(){
$(this).next('.two').slideToggle();
});
JQueryのslideToggle()関数を使用する必要があると思いますが、それを試しましたか?
純粋なCSSを使用してそれを行うことができます: http://jsfiddle.net/8ZFMJ/33/
HTML:
<div class="container">
<a href="#" class="one">Hover me to reveal new div</a>
<div class="two">
I slid!<br>
And I am higher than the div before me...
</div>
</div>
CSS:
.one:focus + .two {
top: 0px;
}
好みに合わせてリンクのスタイルを削除することもできるため、通常のテキストのように見えます。