本文實例講述了js判斷圖片加載完成後獲取圖片實際寬高的方法。分享給大家供大家參考,具體如下:
通常,我們會用jq的.width()/.height()方法獲取圖片的寬度/高度或者用js的.offsetwidth/.offsetheight方法來獲取圖片的寬度/高度,但這些方法在我們通過樣式設置了圖片的寬高後獲取的就不是圖片的實際寬高,這顯然在有些時候不是我們想要的結果,那麼有沒有一種方法來獲取這樣的實際寬高呢?答案是有的。下面的代碼就能解決這樣的問題:
<img src="01.jpg" id="test" width="250px">
js code:
//圖片加載完成後獲取圖片實際寬高 var _test = document.getElementById("test"); test.onload = function(){ imgSize.call(_test); } function imgSize(){ var imgObj = new Image(); imgObj.src = this.src; alert(imgObj.width + "\n" + imgObj.height); }
如果想在其他方法中調用這個實際的寬高,應該將alert(imgObj.width + "\n" + imgObj.height);改為return imgObj,然後是調用的方法:
window.onload = function(){ function a(){ var real= imgSize.call(_test); var realwidth = real.width; alert(realwidth); } a(); }
以上方法過於繁瑣,經過本人的提煉,簡寫如下:
window.onload = function(){ var _test = document.getElementById("test"); //若是jq,則直接將此代碼換成 var _test = $("#test"); 即可。 var imgObj = new Image(); imgObj.src = _test.src; //若是jq,則直接將此代碼換成 imgObj.src = _test.attr("src"); 即可。 alert(imgObj.width); }
這樣,就可以在其他方法裡直接調用圖片的實際寬高了。
更多關於JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript查找算法技巧總結》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。