最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS網(wǎng)頁圖片按比例自適應縮放實現(xiàn)方法

 更新時間:2014年01月15日 14:32:58   作者:  
這篇文章主要介紹了JS網(wǎng)頁圖片按比例自適應縮放實現(xiàn)方法,有需要的朋友可以參考一下

用戶上傳照片,照片的尺寸未知;需要生成一個預覽,這個預覽圖要根據(jù)提供給用戶預覽的區(qū)域自應用,并且居中;如果圖片太大,需要按比例縮放。如下圖。

瞄了一下,居中可以用 text-align:center; 來實現(xiàn)。而按比例縮放,利用預設 <img /> 的 width 、height 屬性解決不了。因為用戶圖片可能是很長的,也可能是很寬的。在線上想了一下他們的關系,按條件來判斷是這樣的:

if(實際寬度 > 預覽最大寬度) {
    縮放寬度 = 預覽最大寬度
}

if(實際高度 > 預覽最大高度) {
    縮放高度 = 預覽最大高度
}
但是這樣會有問題,比如當寬度和高度都被縮放,如果縮放比較不同,圖片就不是按比例縮放,會變得非常丑。為了讓它按比例縮放,就需要做各種判斷了。那這樣就違背了我們希望程序自動化的原則了。再想想,雖然不喜歡數(shù)學,但數(shù)學還是很好用的,應該有其他辦法。而既然是按比例縮放,何不用實際圖像和預覽區(qū)域?qū)挾茸鞯谋壤齺碛嬎闼麄冴P系?hmmmm… 果然 OK。實際上我們永遠都只需要縮放寬度或高度中的其中一個。因為比例只有大和小種情況。具體的,寫一個函數(shù)來實現(xiàn)它吧:

復制代碼 代碼如下:

/**
 * 圖片按比例自適應縮放
 * @param img {Element} 用戶上傳的圖片
 * @param maxWidth {Number} 預覽區(qū)域的最大寬度
 * @param maxHeight {Number} 預覽區(qū)域的最大高度
 */

var resizeImg = function(img, maxWidth, maxHeight){
        var w = img.width,
               h = img.height;

        // 當圖片比預覽區(qū)域小時不做任何改變
        if(w < maxWidth && h < maxHeight) return;

        // 當實際圖片比例大于預覽區(qū)域?qū)捀弑壤龝r
        // 縮放圖片寬度,反之縮放圖片寬度
        w/h > maxWidth/maxHeight  ? img.width = maxWidth : img.height = maxHeight;

相關文章

最新評論

玉田县| 新巴尔虎右旗| 乌拉特中旗| 青川县| 海盐县| 泽库县| 志丹县| 勃利县| 呼图壁县| 垫江县| 平山县| 西安市| 营口市| 厦门市| 雅安市| 文山县| 宝坻区| 永泰县| 吴桥县| 晋中市| 峡江县| 铜鼓县| 承德县| 万山特区| 库车县| 瑞丽市| 溆浦县| 天台县| 富蕴县| 太保市| 石泉县| 永川市| 铜陵市| 清水河县| 河北省| 栖霞市| 四子王旗| 南溪县| 蚌埠市| 聂拉木县| 东城区|