jquery:按比例调整图像数据() - 方法?

时间:2010-12-17 12:57:15

标签: jquery math height width

我有以下代码,我检查onload图像的原始大小是什么:

        $(".post-body img").each(function() {  
            $(this).data('width', $(this).width());
            $(this).data('height', $(this).height());
        });

之后我将所有图像的大小调整为父div .post-body的宽度。

var bw = $('.post-body').width();
$(".post-body img").each(function() {
        // Check the width of the original image size
        if (bw < $(this).data('width')) {
            $(this).removeAttr('height');
            $(this).attr( 'width', bw ); 
            //$(this).attr( 'height', height-in-ratio ); 
        }
});

这个工作得很好!所以我正在检查.post-body宽度是否小于图像的原始宽度我正在将图像调整为与div相同的宽度。

但是我认为在某些旧版本的Internet Explorer中这是一种错误,因为我正在移除图像的高度属性。

如果存储旧的宽度和高度,计算图像比例高度的最简单方法是什么?我有一个新的宽度,我想计算适当的高度。

我似乎无法找到一个简单的数学解决方案。

所以再一次,我不想从图像中删除height属性,而是计算比例高度。

谢谢tipp。 问候

1 个答案:

答案 0 :(得分:2)

var newHeight = newWidth / oldWidth * oldHeight;

newWidth / oldWidth为您提供调整大小比例。如果原始宽度为800且新宽度为400,则该比率为0.5。如果您的原始高度为600,并且您将其与此比率相乘,则得到300. 800x600与400x300的比率相同。