私はcss3トランジションを使用して問題があります
divボックスにカーソルを合わせると、divボックスの高さがゆっくりと変化します
htmlコード
<div id="imgs">
<img src="http://chat.ecobytes.net/img/emoticons/smile.png" alt=":)" title=":)" />
<img src="http://chat.ecobytes.net/img/emoticons/sad.png" alt=":(" title=":(" />
<img src="http://chat.ecobytes.net/img/emoticons/wink.png" alt=";)" title=";)" />
<img src="http://chat.ecobytes.net/img/emoticons/razz.png" alt=":P" title=":P" />
<img src="http://chat.ecobytes.net/img/emoticons/grin.png" alt=":D" title=":D" />
<img src="http://chat.ecobytes.net/img/emoticons/plain.png" alt=":|" title=":|" />
<img src="http://chat.ecobytes.net/img/emoticons/surprise.png" alt=":O" title=":O" />
<img src="http://chat.ecobytes.net/img/emoticons/confused.png" alt=":?" title=":?" />
<img src="http://chat.ecobytes.net/img/emoticons/glasses.png" alt="8)" title="8)" />
<img src="http://chat.ecobytes.net/img/emoticons/eek.png" alt="8o" title="8o" />
<img src="http://chat.ecobytes.net/img/emoticons/cool.png" alt="B)" title="B)" />
<img src="http://chat.ecobytes.net/img/emoticons/smile-big.png" alt=":-)" title=":-)" />
</div>
自動ではなく、指定された高さを設定する必要があると思います。 http://jsfiddle.net/BN4Ny/ これはスムーズな拡張を行います。ただし、その小さなクローズオープンエフェクトが必要かどうかはわかりません。私はあなたのjsfiddleをフォークして、指定された高さを追加しました。
このソリューションは、JavaScriptを必要としないか、事前にコンテナの高さを固定する必要があるという問題があります。
これは、max-height
プロパティを使用して、その値を高い値に設定することで可能になります。
#imgs {
border:1px solid #000;
border-radius:3px;
max-height:20px;
width:100%;
overflow:hidden;
transition: 2s ease;
}
#imgs:hover {
max-height:15em;
}
<div id="imgs">
<img src="https://sslb.ulximg.com/image/405x405/artist/1346353449_4159240d68a922ee4ecdfd8e85d179c6.jpg/e96a72d63f272127d0b6d70c76fd3f61/1346353449_eminem.jpg" />
</div>
コンテナーに設定された高さを使用するか、JS(どちらも厄介なソリューションです)を使用する代わりに...画像をリストアイテムに入れて、liでトランジションを処理できます。
すべての画像が同じ高さになっている場合、コンテナ内のコンテンツは動的である可能性があります。例えば...
/*
CLOSED
*/
div.container li
{ height:0px;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;}
/*
OPEN
*/
div.container:hover li
{ height:30px;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;}
方法は次のとおりです。 http://jsfiddle.net/minitech/hTzt4/
フレキシブルな高さを維持するには、残念ながらJavaScriptが必要です。