當我沒有指定樣式時,我需要在javascript(jQuery)中獲取圖像的尺寸(jQuery的css()返回0)。獲取圖像的寬度和高度
也許這是因爲我正在用jQuery加載圖像,然後才詢問它的尺寸。如果是這種情況,是否有任何聽取的事件可以說明圖像何時加載?
當我沒有指定樣式時,我需要在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給出了實際基礎圖像的尺寸。
您可以使用img's onload來獲得尺寸的圖像一旦加載:
<img src="..." onload="getDimensions(this)" />
這裏有一個鏈接,幫助,看演示: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