2012-09-03 99 views
7

解決:語法錯誤

下面的代碼工作:如何獲得圖像的原始尺寸-Jquery

var image = {width:0,height:0}; 
var imageObject = new Image(); 
function getImageSize(id) { 
    imageObject.src = id.attr("src"); 
    image.width = imageObject.width; 
    image.height = imageObject.height; 
} 

原始的問題

我想獲得圖像的原始寬度和高度,並嘗試使用不同的代碼來實現它。我的功能觸發點擊事件和所有圖像的大小調整爲400x300。

我試圖將圖像尺寸調整到原始大小使用auto

var image = {width:0,heigth:0}; 
function getImageSize(id) { 
    id.css({ 
     'width': 'auto', 
     'heigth': 'auto' 
    }); 
    image.width = id.attr('width'); 
    image.heigth = id.attr('heigth'); 
} 

附加auto沒有改變圖像的大小。

alert(id.attr('width'));總是返回'未定義'。所以它不起作用

var image = {width:0,heigth:0}; 
var imageObject = new Image(); 
function getImageSize(id) { 
    imageObject.src = id.attr("src"); 
    image.width = imageObject.width; 
    image.heigth = imageObject.heigth; 
} 

alert(image.width);完美的作品。

alert(image.heigth);返回未定義。

使用imageObject.naturalWidth的工作方式如上 - 寬度給定正確,但heigth未定義。

我讀過,你必須追加新的圖像對象,但是當我使用imageObject.appendTo('body');我甚至不能點擊圖像。

感謝您的任何建議。

+0

一旦你改變圖像大小,自動將不會再次把它。至於獲取圖像的大小,它必須先加載。 – adeneo

+0

'image.heigth'語法錯誤:「高度」 –

+0

哦,我寫錯了很多次, 更改語法解決了它 – CadanoX

回答

2

這是一個簡單的包含示例,用於在更改後使用原始大小替換圖像。

<img src="http://www.finesttreeserviceaz.com/wp-content/uploads/2012/02/tree2.gif" id="bar" /> 
<script type="text/javascript"> 
    var myImg = document.getElementById("bar"); 
    myImg.setAttribute("style", "width:400px;height:300px;"); 
    function resetBar() { 
     var newImg = new Image(); 
     var oldImage = document.getElementById("bar"); 
     newImg.src = oldImage.src; 
     oldImage.parentNode.replaceChild(newImg, oldImage); 
    } 
    setTimeout("resetBar();", 2000); 
</script> 

另一種方法是刪除所應用的風格:

myImg.removeAttribute("style");