今日、画像を操作しようとしているときに、IE8 で興味深い状況に遭遇しました。
ロードされた画像をURLを変更して置き換えています。ロードされたら、適切にスクイーズしてビューポート要素の中央に配置しようとしています(新しい画像は前の画像のように正方形ではありません)。しかし、IE8 (IE7 はテストしておらず、同僚の IE9 から聞いた - すべて問題ありません) では、画像はスケーリングされず、元のサイズにドロップされるだけで、
img.height(105);
img.css('margin-left', (shift?-shift:0));
単に無視されます。これが問題で切り取られたコードです。
$('.people-images img').each(function () {
var img = $(this);
var oUrl = img.attr('src');
oUrl = oUrl.replace(/[SM]Thumb/, 'LThumb');
img.bind('load', function () {
var img = $(this);
if (this.width > this.height) {
var shift = (this.width / (this.height / 105) - 105) / 2;
img.height(105);
img.css('margin-left', (shift?-shift:0));
}
else {
var shift = (this.height / (this.width / 105) - 105) / 2;
img.width(105);
img.css('margin-top', (shift?-shift:0));
}
});
img.attr('src', oUrl);
img.attr('style', null);
img.parent().attr('style', null);
});
解決策については、私の自己回答を探してください。