麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

JS網頁圖片按比例自適應縮放實現方法

2019-11-20 21:14:55
字體:
來源:轉載
供稿:網友

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

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

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

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

復制代碼 代碼如下:

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

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

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

        // 當實際圖片比例大于預覽區域寬高比例時
        // 縮放圖片寬度,反之縮放圖片寬度
        w/h > maxWidth/maxHeight  ? img.width = maxWidth : img.height = maxHeight;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品一区二区三区免费毛片 | 成人一区二区三区在线 | 日韩专区在线 | 91美女福利视频 | 毛片a片免费看 | 国产一区在线免费 | 九色免费视频 | 成人情欲视频在线看免费 | 国产三级在线观看a | 日韩电影av在线 | 日本视频网| 国产毛片自拍 | 泰剧19禁啪啪无遮挡大尺度 | 欧美大逼网 | 成人9禁啪啪无遮挡免费 | 免费观看黄视频 | 免费嗨片首页中文字幕 | 久久99久久99精品 | 亚洲成人精品在线 | 成人情欲视频在线看免费 | 日本在线一区二区 | 91美女啪啪 | 密室逃脱第一季免费观看完整在线 | 精精国产xxxx视频在线播放7 | fc2国产成人免费视频 | 亚洲福利在线视频 | 情侣啪啪网站 | 国产激情精品一区二区三区 | 99精品国产小情侣高潮露脸在线 | 蜜桃视频在线入口www | 国产成人在线看 | 日本a∨精品中文字幕在线 欧美1—12sexvideos | 久久另类视频 | 国产91九色在线播放 | 国产一区精品在线观看 | 毛片在哪里看 | 免费观看三级毛片 | av影院在线播放 | 超级av在线 | av在线免费网 | www.91pron|