jQueryでコンテンツの幅に合わせて画像をリサイズ
昨日勢い余ってこのブログをリニューアルしました。blueprintCSSを使って簡単にグリッドができたりしたのでかなり大雑把な感じでできているのですが、コンテンツの横幅が728pxから526pxに変わったので、今までにアップロードした画像がコンテンツエリアからはみ出てサイドバーの下まで浸食してしまいます。たとえばこのページとか。
CSSでmax-widthを指定してもIEでは意味がないので、jQueryでイメージサイズをいじってみました。
$(function(){
var mw = 526; //最大幅を指定
var sl = '#content-main img'; //jQueryセレクタ記述
$(sl).each(function(){
var w=$(this).width();
if (w>mw) {
$(this).height($(this).height()*(mw/w)).width(mw);
}
});
});
IE6で未検証ですが機会があれば検証します。
つーかいいかげん氏ねIE6。
ちなみに、IE8では
$(this).height($(this).height()*(mw/w)).width(mw);
この行のheightとwidthのチェーン順を逆にすると変なことになります。
ブラウザのJSエンジンの変数の取り方がおかしいのか、jQueryが対応しきれていないのかは微妙ですが、どっちにしてもやっぱり氏ねIE。
# Safari 4やChromeで動かない。なんでだろうか。



