もう下記コードのままなんですけど、#wrapper
を「にゅーん」とスライドさせながら表示したいんですが、どうやったら上手にできますか?
jQueyrのslideDown
だとカクカクするからイヤなんですよね…
次のように考えて、CSSでtransition: 0.5s;
としたのですが、これだと「にゅーん」が表現できませんでした。
どうやったら、カクカクしない「にゅーん」が作れますでしょうか?
動くサンプル:https://jsfiddle.net/36u20qzx/
html
1<p>クリックしたら#wrapperを「にゅーん」とスライドさせながら表示したい。<br> 2ただしjQueryのslideDownはカクカクするからイヤなんです。</p> 3 4<div id="header">クリック</div> 5 6<div id="wrapper" class="close"> 7 <ul> 8 <li>list</li><li>list</li><li>list</li><li>list</li><li>list</li><li>list</li><li>list</li><li>list</li><li>list</li><li>list</li><li>list</li><li>list</li><li>list</li><li>list</li><li>list</li><li>list</li><li>list</li> 9 </ul> 10</div>
css
1#header { 2 background: #eee; 3 border: 1px solid #000; 4 border-radius: 50px; 5 text-align: center; 6 cursor: pointer; 7} 8#wrapper { 9 background: thistle; 10 transition: 0.5s; 11} 12#wrapper.close { 13 height: 0; 14} 15#wrapper.open { 16 height: auto; 17}
jQuery
1$(function(){ 2 $(document).on("click","#header:not(.click)",function(){ 3 $(this).addClass('click'); 4 $('#wrapper').removeClass('close').addClass('open'); 5 }); 6 $(document).on("click","#header.click",function(){ 7 $(this).removeClass('click'); 8 $('#wrapper').removeClass('open').addClass('close') 9 }); 10});
