為了提升用戶體驗,網站用戶在上傳圖片的時候,我們不能夠讓用戶自己去處理圖片以達到我們的要求。
而通常像淘寶上商品實物展示這樣的頁面,我們需要控制的主要是圖片的寬度。
又考慮到html頁面解析順序可能導致的一些問題,決定通過定義一個簡單的功能函數,然後在img元素中添加onload事件來調用的方式進行實現,代碼如下:
JS部分
<script type="text/javascript"> function changeImg(objImg) { var most = 690; //設置最大寬度 if(objImg.width > most) { var scaling = 1-(objImg.width-most)/objImg.width; //計算縮小比例 objImg.width = objImg.width*scaling; objImg.height = objImg.height; //img元素沒有設置高度時將自動等比例縮小 //objImg.height = objImg.height*scaling; //img元素設置高度時需進行等比例縮小 } } </script>
HTML調用部分
<img src="" onload="changeImg(this);" />