2011-04-06 86 views

回答

2
var max = 200; 
$('img').each(function() 
{ 
    var $this = $(this); 
    if ($this.height() > $this.width()) 
    { 
     $this.height(max); 
    } 
    else 
    { 
     $this.width(max); 
    } 
}); 

http://jsfiddle.net/mattball/qtVkT/

+0

@Charles包裹它 - 您无法将500x800图像放大到200x200而不会失真! (除非你想裁剪) – 2011-04-06 04:39:18

+0

我可以填充一些“白色边框”的图像,使图像不会失真吗? – 2011-04-06 04:41:34

+2

是的,只是把它放在一个200x200的div中。 – 2011-04-06 04:42:54

0

this tutorial

  • 我们假设缩略图应为100个像素,无论是宽或高。
  • 我们加载原始图片,并检查其尺寸。
  • 如果图片比宽高,我们将大拇指的高度设置为100像素。
  • 缩略图的宽度是原始宽度乘以100像素除以其高度。
  • 缩略图height =原始宽度*(100 /原始高度)
  • 这样我们就保留了原始的宽高比。
  • 如果原始图片比宽高,我们对缩略图的高度也做同样的处理。
  • 如果它们相同,我们只需创建一个100x100像素的图像。

国际海事组织调整大小的图像与jQuery是一种不好的做法,我建议你不应该这样做,如果你可以使用GD库。

1

这将限制所有图像带班“形象”是< = 200x200px

如果你希望它是一个完美的200×200箱,在200x200px DIV

$('.image').each(function(){ 
    var $this = $(this); 
    $this[$this.width() > $this.height() ? 'width' : 'height'](200); 
}); 
+0

尼斯和紧密。 +1 – 2011-04-06 04:40:06

+0

@Matt - 对不起,没有看到你的答案,它是完全相同的 – 2011-04-06 04:41:24