js獲取圖片高度


js獲取圖片高度時經常會獲取的圖片高度為0,原因是圖片未加載完畢。第一次加載時,顯示0(火狐等部分瀏覽器顯示24)。待加載完畢后,再刷新,顯示圖片高度258。

var oImg = document.createElement("img");
oImg.src = "http:////www.baidu.com/img/bdlogo.png";
document.getElementsByTagName("body")[0].appendChild(oImg);
console.log(oImg.height);

  onload可以避免這種問題。

oImg.onload = function(){
    console.log(this.height);
};

  jquery有類似方法。

$(oImg).load(function(){
    console.log($(this).height());
});

   瀏覽器加載圖片只加載一次,第二次則讀取緩存。onload事件只在第一次加載過程中觸發。如果我們無論圖片是否存在緩存中都在圖片加載完畢后執行某語句,則可利用img的complete屬性。complete為true時,表示圖片存在於緩存中。

if(oImg.complete){
  console.log(oImg.height);		
}else{
  oImg.onload = function(){
      console.log(this.height);
  };
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM