2015-01-04 137 views
0

我写过这个函数来自动调整嵌套在指定div中的未知数量的图像的大小。换句话说,宽度应该始终为225px,高度应该相对于原始图像大小而改变。用jquery自动调整图像大小

不幸的是我的代码似乎不工作,警报总是返回“null”。我究竟做错了什么?非常感谢。

$(function resizeImg() { 
var height = new Array(); 
var width = new Array(); 
var newHeight = new Array(); 
var count = $(".floatRight").find('img').length; 
if ($("img").parent().hasClass("floatRight")) { 
    for (i = 0; i < count; i++) { 
     height[i] = $("img:eq(i)").height(); 
     width[i] = $("img:eq(i)").width(); 
     newWidth = 225; 
     newHeight[i] = (newWidth*height[i])/width[i]; 
     $("img:eq(i)").css({ 
       "height": newHeight[i], 
       "width": newWidth 
       }); 
     alert (height[i]); 
     alert (width[i]); 
    } 
} 
}); 
+0

您没有设置高度。如果您只设置宽度并保持高度不变,图像将按比例缩放。 – jfriend00

+0

很多事情都不对。 '$(“img:eq(i)”)'根本不起作用。您还必须等到图像加载之后才能查询它们的高度和宽度。 – jfriend00

+0

许多问题,其中第一个是图像需要时间来加载,直到加载它们将不具有维度,除非它们在标记中指定。你的'if'不能正常工作,你不可能瞄准正确的图像 – charlietfl

回答

2

删除您的代码,并把下面的CSS在网页上:

<style> 
    .floatRight img{ 
    width:225px; 
    } 
</style> 

这应该做的伎俩......