關於圖片是比較特殊,最近公司在做一個項目遇到一個問題便是圖片高度總是為0。最后研究了一下,主要原因是:圖片是在DOM結構渲染完成以后調用的,這時候網頁中一些資源還沒有加載,比如圖片等資源,但是DOM結構已經渲染成功了 。
因為項目中經常用的是jquery,所以,解決圖片高度的時候就要在window.onload=function(){}里調用,當然若是需在$(function(){})里的調用img的高度,那么就需要這樣來寫:
$("galleryImg").get(0).onload = function (){ //$("galleryImg")是選擇器 //var picH=document.getElementById("galleryImg").height;原生寫法 //var picW=document.getElementById("galleryImg").width;原生寫法 var picH=$("#galleryImg").height(); var picW=$("#galleryImg").width(); };
這樣,也就是說在某一塊dom渲染出來的時候,同時去加載圖片,所以這個時候圖片的高度也就有了。
所以,主要原因就是:當我們在$(function(){})調用$('img').height()的時候,由於圖片還沒有加載,所以這時候<img>標簽的高度就是0,所以返回值就是0。但是當你用window.onload=function(){}調用的時候,圖片已經加載出來了,所以這時候就能得到圖片的高度。
所以記得,$(function(){})是在DOM渲染結束,資源還沒有加載的時候執行的,如果你想獲取到一些資源的信息,這個時候是沒有辦法的哦!