2016-07-06 6 views
0

簡単な条件フィールドのオン/オフを切り替える必要のあるHTMLフォームを作成しています。私の問題は、アニメーションが移行中にjQueryアニメーションとオブジェクトの高さが保持されないことに関連しています。これは、アニメーションの遷移でバギージャンプを引き起こしています。jQueryアニメーションの表示/非表示、アニメーションが終了するまでオブジェクトの高さを維持

は、問題をよりよく理解するために、このフィドルを参照してください:チェックボックスがチェックされている場合はhttps://jsfiddle.net/n3frxf6m/4/

、それは条件付きのフィールド#3でデフォルトの入力フィールド#4を置き換えます。

display: nonevisibility: visibleに置き換え、opacityをスクリプトに使用するなど、いくつかの方法を試しましたが、問題は解決しません。

このような滑らかな表示/非表示のアニメーションを作成するためのエレガントな方法はありますか?

<div style="width: 300px;"> 
     <div> 
     <input type="checkbox" id="show_hide" /> Check me 
     </div> 

     <div style="float: left;"> 
     <input type="text" value="Field 1" /> 
     </div> 

     <div style="float: right;"> 
     <input type="text" value="Field 2" /> 
     </div> 

     <div id="hidden" style="display: none"> 
     <input type="text" value="Field 3 (conditional field)" /> 
     </div> 

     <div id="visible"> 
     <input type="text" value="Field 4" /> 
     </div> 

     <div> 
     <input type="text" value="Field 5" /> 
     </div> 
</div> 

<script> 
$('#show_hide').click(function() { 
    if ($(this).is(':checked')) { 
    $("#hidden").show(500); 
    $("#visible").hide(500); 
    } else { 
    $("#hidden").hide(500); 
    $("#visible").show(500); 
    } 
}); 
</script> 
+1

あなたの質問への重要なコードを追加してください。コードへの単なるリンクの代わりに。 – imtheman

+0

完全なコードで質問が更新されました。 – TNF

答えて

1

2つの最初のdivはCSS floatプロパティを持ちます。したがって、次のdivのためにこの動作をクリアする必要があります。

https://jsfiddle.net/n3frxf6m/6/

+0

はい、アニメーションの問題をより視覚的に視覚化するために行いました。浮動小数点数を削除すると、アニメーションにわずかなジャンプが表示されます。 – TNF

+0

私の編集を見てください、私は最初のリンクについて間違いを犯しました、今それは更新されました –

+0

優れています。迷惑な問題へのそのような簡単な解決策。どうもありがとう! – TNF

1

あなたは、左右に異なる浮動オブジェクトを持っているあなたは3番目と4番目のオブジェクトにclear:bothによって浮遊効果をクリアする必要がありとおり:私はそれを与え、clear:both財産とした後、第三のdivを追加しました。

#visible{clear:both} 
#hidden{clear:both} 

fiddelを確認してください:https://jsfiddle.net/n3frxf6m/3/

+0

これは素晴らしいです、ありがとう!迷惑な問題へのそのような簡単な解決策。 – TNF

関連する問題