2015-11-05 37 views
1

我必须知道我的动态图像的尺寸并在图像上设置真值。所以我尝试了一个函数,像这样:想知道图像的原始大小,并通过属性在jQuery中指定

$().ready(function() { 
    imageSize(); 
}); 
// Assign width/height to img 
function imageSize() { 
    // Specify image dimensions 
    $('img').each(function() { 
     var findImgWidth = $(this).width(); 
     var findImgHeight = $(this).height(); 

     $(this).attr('width', findImgWidth); 
     $(this).attr('height', findImgHeight); 
    }); 
} 

那么,它适用于指定但不计算维度。每张图片的尺寸为0px 我该如何解决?

+2

改为使用窗口onload事件,您必须等待图像加载才能获取其尺寸。 – Shikkediel

+1

@Shikkediel是的!这是它,谢谢! –

回答

0

$(document).ready()运行时,DOM进行分析,但不会等待要加载的图像。

为每个元素添加一个load处理程序以在其加载时设置其属性,而不是在循环中完成所有处理。

function imagesize() { 
    $('img').on('load', function() { 
     $(this).attr({ 
      'width': $(this).width() + "px", 
      'height': $(this).height() + "px" 
     }); 
    }); 
} 
0

您需要设置值为数字,parseFloat(IMG值)

希望这有助于

相关问题