欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

瞄了一下,居中可以用 text-align:center; 來實(shí)現(xiàn)。而按比例縮放,利用預(yù)設(shè) <img /> 的 width 、height 屬性解決不了。因?yàn)橛脩魣D片可能是很長(zhǎng)的,也可能是很寬的。在線上想了一下他們的關(guān)系,按條件來判斷是這樣的:

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

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

復(fù)制代碼 代碼如下:

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

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

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

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

相關(guān)文章

  • JavaScript控制Session操作方法

    JavaScript控制Session操作方法

    JavaScript代表客戶端,而Session代表的是服務(wù)器(不知道這樣說大家是否能夠理解)接下來介紹JavaScript如何控制Session,感興趣的朋友可以了解下啊
    2013-01-01
  • 前端無感知刷新token以及超時(shí)自動(dòng)退出實(shí)現(xiàn)方案

    前端無感知刷新token以及超時(shí)自動(dòng)退出實(shí)現(xiàn)方案

    前端需要做到無感刷新token,即刷token時(shí)要做到用戶無感知,避免頻繁登錄,下面這篇文章主要給大家介紹了關(guān)于前端無感知刷新token以及超時(shí)自動(dòng)退出的實(shí)現(xiàn)方案,需要的朋友可以參考下
    2024-01-01
  • 淺析Bootstrap組件之面板組件

    淺析Bootstrap組件之面板組件

    這篇文章主要介紹了淺析Bootstrap組件之面板組件 的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • 使用JS來動(dòng)態(tài)操作css的幾種方法

    使用JS來動(dòng)態(tài)操作css的幾種方法

    這篇文章主要介紹了使用JS來動(dòng)態(tài)操作css的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • JavaScript獲取表單內(nèi)所有元素值的方法

    JavaScript獲取表單內(nèi)所有元素值的方法

    這篇文章主要介紹了JavaScript獲取表單內(nèi)所有元素值的方法,實(shí)例分析了javascript操作表單元素的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • IE無法設(shè)置短域名下Cookie

    IE無法設(shè)置短域名下Cookie

    最近客戶在使用我們的流量監(jiān)測(cè)系統(tǒng)以及GA時(shí)發(fā)現(xiàn)了一個(gè)問題,我們統(tǒng)計(jì)到的數(shù)據(jù)比GA的要多很多倍,而且我們統(tǒng)計(jì)到的數(shù)據(jù)中,跳出率非常高,高達(dá)99%左右。
    2010-09-09
  • javascript實(shí)現(xiàn)2016新年版日歷

    javascript實(shí)現(xiàn)2016新年版日歷

    這篇文章主要為大家介紹了javascript實(shí)現(xiàn)2016新年版日歷的詳細(xì)代碼,感興趣的小伙伴們可以參考一下
    2016-01-01
  • js實(shí)現(xiàn)簡(jiǎn)單的獲取驗(yàn)證碼按鈕效果

    js實(shí)現(xiàn)簡(jiǎn)單的獲取驗(yàn)證碼按鈕效果

    本文主要介紹了js實(shí)現(xiàn)簡(jiǎn)單的獲取驗(yàn)證碼按鈕加效果的實(shí)例,具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03
  • js實(shí)現(xiàn)感應(yīng)鼠標(biāo)圖片透明度變化的方法

    js實(shí)現(xiàn)感應(yīng)鼠標(biāo)圖片透明度變化的方法

    這篇文章主要介紹了js實(shí)現(xiàn)感應(yīng)鼠標(biāo)圖片透明度變化的方法,涉及javascript鼠標(biāo)操作及css修改技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • Javascript條件判斷使用小技巧總結(jié)

    Javascript條件判斷使用小技巧總結(jié)

    我們已經(jīng)知道,null?沒有任何的屬性值,并且無法獲取其實(shí)體(existence)值。所以?null.property?返回的是錯(cuò)誤(error)而不是?undefined?。
    2008-09-09

最新評(píng)論