_<div class="searchDiv">
<div class="row"></div>
<div class="row"></div>
<div class="row"></div>
<div class="row"></div>
</div>
_
最初は_display:none
_を使用して非表示になっているクラスsearchDiv
を使用してdivで$("div.searchDiv").slideToggle("slow");
を呼び出そうとしています。クラスrow
の4つのdiv内にいくつかのdiv要素があります。メインdiv内に配置された要素のトグル効果がスムーズではないことがわかったため、要素がメインdiv内にどのように配置されているかは重要ですかsearchDiv
。
何かがスムーズに見えるかどうかという考えは意見であり、誰がそれを見ているかによって異なります。低速を使用している場合は、200ミリ秒の値が与えられます。
SlideToggle。 https://api.jquery.com/slideToggle/
期間はミリ秒単位で指定されます。値が大きいほど、アニメーションは遅くなり、速いアニメーションではありません。文字列「fast」および「slow」を指定して、それぞれ200ミリ秒と600ミリ秒の期間を示すことができます。
デフォルトのイージングはswingで、私にはラフに見えます。緩和のために線形を試すことをお勧めします。
スイングまたは線形が十分にスムーズでない場合は、jQuery UIを使用してインクルードし、他のオプションの1つを使用できます。必要に応じてスムーズに機能すると思われるイージングを見つけることができます。
http://jqueryui.com/resources/demos/effect/easing.html
$('.searchDiv').slideToggle(2000,"linear", function () {
// actions to do when animation finish
});
私はこれが古いことを知っていますが、それが他の誰かを助ける場合に備えて、トグルされた要素にmin-heightプロパティを設定したときに問題を見つけ、固定の高さに設定するとこれが解決しました。
行に幅を追加する必要があります。
jQueryは、非表示のdivが表示されるまでそのサイズを認識しません。そのため、クリックすると、実際に位置がずれて測定され、すぐに交換されます。これはしばしば、いくらかのジャンプを引き起こすという副作用があります。要素に幅を設定すると、jQueryが要素を所定の位置から引き出せなくなります。
私も同様の問題を抱えていました。 2つのことが私のためにそれを修正しました。