获取图像的宽度和高度
问题描述:
当我没有指定样式时,我需要在javascript(jQuery)中获取图像的尺寸(jQuery的css()返回0)。获取图像的宽度和高度
也许这是因为我正在用jQuery加载图像,然后才询问它的尺寸。如果是这种情况,是否有任何听取的事件可以说明图像何时加载?
答
也许图像尚未完全加载,因此尺寸无法给出。但没有您的代码我不能告诉你在做什么错的,但这里有一个例子,将工作:
function LoadImage(isrc)
{
var oImg = new Image();
oImg.src = isrc;
if (oImg.complete) {
window.alert(oImg.src + ' ' + oImg.width + ' x ' + oImg.height);
}
else {
window.setTimeout('iLoad(imgsrc)', 1000);
}
}
<body onLoad='LoadImage(imgsrc)'>
答
根据image.width或image.naturalWidth(和高度等效值)的宽度/高度给出图像标签上的宽度/高度属性,naturalWidth/Height给出了实际基础图像的尺寸。
答
这里有一个链接,帮助,看演示:http://docs.jquery.com/Events/load
使用jQuery有一个负载()事件当图像完成加载后,会发生这种情况,即:
<script type="text/javascript">
$(document).ready(function()
{
$('#theImage').load(function()
{
// do the stuff here.
});
});
</script>
<img src="blah.jpg" id="theImage" />
答
你可以尝试karim79的和约翰·博克的回答结合起来。 尝试将图像预加载到隐藏的DOM中,当它加载时,您可以尝试获取宽度为&的高度。
完整似乎不适用于Chrome。这对我工作到目前为止:http://stackoverflow.com/questions/318630/get-real-image-width-and-height-with-javascript-in-safari-chrome – 2ni 2010-01-09 17:10:19