画像を含む div のリストがあり、それらが適切なサイズであることを確認したいと考えています。このため、親の 100% より小さい場合を除き、通常は 100% 幅です。親の 100% より小さい場合は、元のサイズにする必要があります。これが私のコードです:
$('.sa-img').each(function() {
img = new Image();
var obj = $(this);
img.onload = function() {
//console.log(this.width + ' <= ' + obj.outerWidth());
if (this.width <= obj.outerWidth())
obj.css({'width':this.width +'px'});
}
img.src = $(this).attr('src');
}
});
HTML に関しては、次のように簡単です。
<div class="sa-img-container">
<img class="sa-img" src="<?=$img_url?>" />
</div>
これで、最初の画像を除いて、うまく機能します。私はそれについて何をしますか?まるでそれがロードされるのを待っていないかのようです。画像を並べ替えても問題ありません。最初に苦しむのは常に画像です。元のサイズの出力は常に 100 です。これにより、100% より大きいという事実に関係なく、画像の元のサイズにサイズ変更されます (たとえば、220px の画像は、204px div 内で 100% ではなく 220px にサイズ変更されます)。 - レイアウトが期待どおりに機能しない。