首頁  >  文章  >  web前端  >  js判斷圖片載入完成後取得圖片實際寬高的方法_javascript技巧

js判斷圖片載入完成後取得圖片實際寬高的方法_javascript技巧

WBOY
WBOY原創
2016-05-16 15:13:391264瀏覽

本文實例講述了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遍歷演算法與技巧總結》及《Java數學運算用法總結

希望本文所述對大家JavaScript程式設計有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn