条件に応じて表示または非表示になる要素があります。要素を非表示または表示するには、jQuery の fadeIn() および fadeOut() アニメーションを使用します。
私の問題は、その要素の位置が、fadeOut/fadeIn シーケンスの後に突然変更されることです。ただし、計算されたスタイル ルールに違いはありません。要素自体も、埋め込み div タグも対象外です。シーケンス後に何が変更されますか?
短いテスト ケースを作成しました: http://jsfiddle.net/2QVX8/14/
テーブルの下にある下向きの三角形に注意してください。中央に配置されています。「トグル」ボタンを 2 回クリックすると、fadeOut/fadeIn シーケンスが実行されます。その後、要素は中央に配置されなくなり、左端に配置されます。
テストケースのコードは次のとおりです。
HTML:
<button id='toggle'>Toggle</button>
<p/>
<div>
<table id="list">
<tbody>
<tr><td>1-1</td><td>1-2</td></tr>
<tr><td>2-1</td><td>2-2</td></tr>
<tr><td>3-1</td><td>3-2</td></tr>
</tbody>
</table>
<div id="footer">
<span>▾</span>
</div>
</div>
CSS:
table{
width: 100%;
border: 1px solid black;
}
table tr td{
text-align: center;
}
#footer{
position: absolute;
}
JS/jQuery:
$('#toggle').bind('click',function(){
if ($('#footer span').is(':visible'))
$('#footer span').fadeOut('fast');
else $('#footer span').fadeIn('fast');
})