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

首頁 > 編程 > JavaScript > 正文

基于JQuery實(shí)現(xiàn)的圖片自動進(jìn)行縮放和裁剪處理

2019-11-20 21:10:25
字體:
供稿:網(wǎng)友

其實(shí)很早就想寫一個這樣的效果,至于原因?進(jìn)來這個筆記,我相信你懂的。
一般門戶網(wǎng)站,缺少不了大量的圖片展示,而為了網(wǎng)站美觀,圖片又有各種不同尺寸,專業(yè)的網(wǎng)站編輯人員,會把圖片處理成等比例的圖片再上傳,把網(wǎng)站弄得很好看,可惜,我想說,我遇到90%的網(wǎng)站編輯人員都是不專業(yè)的。
為了不讓網(wǎng)站編輯人員毀掉我的心血,我決定做這樣一個事情。

1、首先,在CSS里對圖片定義好大小,如果JS不執(zhí)行,就能看到拉伸的圖片,也就是最正常的表現(xiàn);
2、對每個定義圖片大小的CSS多定義一個不常用的容器,這里我選用了斜體標(biāo)簽<cite></cite>,并定義其CSS與同根img的CSS一模一樣,并定義該容器里的img的CSS樣式回歸margin:0;padding:0;
我是這樣做的:

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

/*公用*/
cite{display:block;overflow:hidden;overflow:hidden !important;}

/*某容器*/
#BigPic img{display:block;padding:2px;width:240px;height:160px;border:1px solid #cccccc;}
#BigPic cite{display:block;padding:2px;width:240px;height:160px;border:1px solid #cccccc;}
#BigPic cite img{display:block;margin:0px;padding:0px;border:none;}

3、定義圖片處理函數(shù),參考圖片被定義的大小和原始大小,在保持比例的前提下填充滿位置,再裝進(jìn)裁剪容器;
我的代碼:

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

//圖片尺寸判斷與處理,用裁剪容器包圍 - By COoL
function cutImgz(obj){
    var image=new Image();
    image.src=obj.src;

    $this=$(obj);
    var iwidth=$this.width();//獲取在CSS里固定的圖片顯示寬度
    var iheight=$this.height();//獲取在CSS里固定的圖片顯示高度
    if(1*image.width*iheight!=1*iwidth*image.height){
        //原始圖片的尺寸與CSS里固定的圖片尺寸比例不一致,則進(jìn)行處理
        if(image.width/image.height>=iwidth/iheight){
            $this.height(iheight+'px');
            $this.width((image.width*iheight)/image.height+'px');
        }
        else{
            $this.width(iwidth+'px');
            $this.height((image.height*iwidth)/image.width+'px');
        }

        //用cite裝起來,做出裁剪效果
        $this.wrap('<cite />');
    }
}

4、在加載頁面時遍歷所有圖片,判斷其是否在緩存中,在緩存中則直接進(jìn)行處理,不在緩存中則通過onload觸發(fā)處理;
因?yàn)樵诰彺娴膱D片秒load,在定義onload事件之前就已經(jīng)load好,導(dǎo)致onload事件不被觸發(fā);而不在緩存的圖片,若直接處理,圖片未load出來,原始尺寸會被Image對象認(rèn)為是空圖,width和height都是0
我的代碼:

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

$('img').each(function(){
    var image=new Image();
    image.src=this.src;
    if(image.complete){
        //存在緩存中,立即處理
        cutImgz(this);
    } else{
        //不存在緩存中,onload處理
        this.onload=function(){
            cutImgz(this);
        }
    }
});

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 香蕉久久久精品 | 精品国产1区2区3区 免费国产 | 国产一区国产二区在线观看 | 91久久久久久久久久久久久 | 国产精品久久av | 老女人碰碰在线碰碰视频 | 91久久精品一区二区 | 中文字幕在线永久视频 | 伊人yinren22综合网色 | 超碰97国产在线 | 国产资源视频在线观看 | 一本精品999爽爽久久久 | 久草导航| 欧美一区二区三区免费不卡 | a视频在线播放 | 国产亚洲美女精品久久久2020 | 人禽l交免费视频 | 国产午夜精品久久久久久免费视 | 国产精品18久久久久久久 | 亚洲精品成人久久 | av在线影片 | 免费h片| 一区国产在线观看 | 亚洲午夜天堂吃瓜在线 | 亚洲一级片免费观看 | 久久精品视频一区二区 | 亚洲第一成人在线观看 | 成人免费观看毛片 | 久久伊人精品热在75 | 国产成年人在线观看 | asian裸体佳人pics| 激情夜色 | 91九色视频在线播放 | 玩偶姐姐 在线观看 | 蜜桃91丨九色丨蝌蚪91桃色 | 欧美中文字幕一区二区三区亚洲 | 久久成年人视频 | 特级a欧美做爰片毛片 | 国产一区网址 | 国产精品久久久久久238 | 中国毛片在线观看 |