在實際應用中,圖片自適應大小結合水平垂直居中,是很是經常使用的手段。今天就圖片的自適應這裏推薦一個方法,此方法已經經過多種常見場合和各大瀏覽器兼容性的測試。 瀏覽器
先看方法: app
這個方法一共測試了3種場合: 測試
場合1,直接做用在img標籤上: this
<img src=」http://img.china.alibaba.com/images/trade/other/091231/test1.jpg」 width=」400″ height=」900″ onload=」resizeImage(this,400,300)」 /> spa
場合2,對現有標籤重置src屬性: 圖片
<img id=」test2″ src=」about:blank」 /> rem
var test2=document.getElementById(‘test2′); get
test2.onload=function(){ resizeImage(test2,400); }; it
test2.src=’http://img.china.alibaba.com/images/trade/other/091231/test2.jpg’; io
場合3,動態加載img:
var test3=new Image();
test3.onload=function(){ resizeImage(test2,300); };
test3.src=’http://img.china.alibaba.com/images/trade/other/091231/test3.jpg’;
document.appendChild(test3);
以上3種所演繹的狀況在技術層面的差異主要有:
1. img是否存在與頁面上,在ie6下,對不存在頁面上的img的寬高自適應,對2個屬性都必需進行設定。
2. img是否自帶width, height屬性,在不刪除原有屬性的前提下,經過js設定圖片的寬高將會失效
3. img在onload的過程當中是否可見,在ie6下,對不可見的img在onload中沒法獲取圖片的寬高屬性。
同時須要注意的是,在Opera和Chrome瀏覽器下,沒有設置寬高屬性的圖片是在DOM Ready以後進行load的,全部請使用此方法的同窗注意方法調用的時機。