当没有为它指定样式时,我需要在javascript(jQuery)中获取图像的尺寸(jQuery的css()返回0)。
也许是因为我在询问它的尺寸之前用jQuery加载图像。如果是这种情况,是否有任何要监听的事件告诉图像何时被加载?
答案 0 :(得分:3)
也许图片没有完全加载,因此无法提供尺寸。但是如果没有您的代码,我无法分辨出您做错了什么,但这是一个可行的示例:
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)'>
答案 1 :(得分:1)
这是一个有用的链接,请查看演示:http://docs.jquery.com/Events/load
使用jquery有一个load()事件,当图像完成加载时触发,即:
<script type="text/javascript">
$(document).ready(function()
{
$('#theImage').load(function()
{
// do the stuff here.
});
});
</script>
<img src="blah.jpg" id="theImage" />
答案 2 :(得分:0)
取决于你在image.width或image.naturalWidth(和高度等值)之后的内容,width / height给出了image标签上的width / height属性,naturalWidth / Height给出了实际底层图像的尺寸。
答案 3 :(得分:0)
图片加载后,您可以使用img's onload获取尺寸:
<img src="..." onload="getDimensions(this)" />
答案 4 :(得分:0)
您可以尝试将 karim79 和 John Boker 的答案结合起来。 尝试将图像预加载到隐藏的DOM中,当它加载时,您可以尝试获取其宽度和高度。