データベースのデータを表示する複数のdivを作成するPHPループがあります。divの内部テキストに従って高さを計算する
<?php
foreach($result as $row) {
?>
<div class="container-fluid" id="content-fluid">
<div class="container-update">
<div class="update-group">
<div class="update-header">
<?php echo $row['update_title'] ?>
<div class="update-author">
by <?php echo $row['update_creator'] ?>
</div>
</div>
<div class="update-body">
<?php echo $row['update_text']; ?>
</div>
</div>
</div>
</div>
<?php
}
?>
私はjQueryを介してそれらがクリッカブル作られ、彼らは高さに増加します:
$(document).ready(function() {
$('.update-group').click(function() {
var clicks = $(this).data('clicks');
if(clicks) {
$(this).removeAttr('style');
}
else {
$(this).animate({height: '200px'}, 300);
}
$(this).data("clicks", !clicks);
});
});
デフォルトの高さは、すべてのdivは、同じ高さであることを保証するために特定の値に設定され、オーバーフローがに設定されています隠されたそれらをクリックすると、その内部のテキストに従って下に展開されます。
テキストがちょうど良いディビットは、まったく拡張できないはずです。また、余分な量のテキストを含むdivは、計算された高さに拡大されます。
私は私が何を意味するかを実証するjsfiddleプログラムを設定しました:https://jsfiddle.net/vz6s9brd/
これは間違いなく正しいことです。私は、必要な高さの計算は正確には正しくないと考えています。なぜなら、展開されたときにテキストが切り取られるからです。 – JackInABottle
outerHeightは、パディングとマージンを考慮に入れる良い解決策のようです。 http://api.jquery.com/outerheight/ – willywonka
を参照してください。更新グループパディングも考慮する必要があります。何かのようなもの: 'var neededHeight = bod.outerHeight()+ head.outerHeight()+ 2 * parseInt($(this).css( 'padding'));' – willywonka