jq獲取img高度(動態生成的image高度為0原因)


關於圖片是比較特殊,最近公司在做一個項目遇到一個問題便是圖片高度總是為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渲染結束,資源還沒有加載的時候執行的,如果你想獲取到一些資源的信息,這個時候是沒有辦法的哦!


免責聲明!

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



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