Contents
- UNIX
- Windows
- サーバ
- プログラミング言語
- データベース
- プロトコル
- サービス
- オープンソース
- 規格・技術
- アプリケーション
- PC
- DEVICE
- その他(未分類)
お問合せ: メールフォーム
jQuery で、画像を指定サイズにリサイズして表示します。
サムネイルの表示に便利です。
<script type="text/javascript" src="/path/to/jquery.js"></script> <script type="text/javascript"> jQuery.event.add(window, "load", function(){ var fw = 100; //fixed width var fh = 100; //fixed height var sl = 'img.hoge'; //selector $(sl).each(function(){ var w = $(this).width(); var h = $(this).height(); if (w >= h) { $(this).width(fw); } else { $(this).height(fh); } }); }); </script> <img src="sample1.jpg" class="hoge"> <img src="sample2.jpg" class="hoge"> <img src="sample3.jpg" class="hoge">
元の画像 |
リサイズ処理を適用した場合 |
コメント (ご自由にお書きください)
ありがとうございました。
表示幅、表示高さを <img> の属性から渡すように変更してみました。
「$(window).bind("load", function() { ... 」は Chrome や Safari で img の width(), height() を取得するために必要のようです。
$(document).ready(
function() {
/*
* <img class="fit_size" max_width="###" max_height="###"> の画像を
* 縦横比率を変えずに、属性 max_width x 属性 max_height に収まるように
* サイズ変更して表示する
*/
$(window).bind("load", function() {
$('img.fit_size').each(function() {
var max_width = parseInt($(this).attr('max_width' ));
var max_height = parseInt($(this).attr('max_height'));
var img_width = $(this).width() ;
var img_height = $(this).height();
if (max_width / max_height >= img_width / img_height) {
$(this).height(max_height);
} else {
$(this).width(max_width);
}
});
});
}
)
コメントありがとうございます。
なるほど、これなら1つの記述でさまざまな高さや幅の画像に対応できますね。
参考にさせていただきます。ありがとうございます。