1. 程式人生 > >js實現div內圖片自適應大小 並裁剪

js實現div內圖片自適應大小 並裁剪

主要用js來重新計算圖片的大小,
window.onload=function(){
        changeImgSize();
    }
    function changeImgSize(){
        var getContainer=document.getElementById('imgcontainer');//父元素div
var getIMG=getContainer.getElementsByTagName('img')[0];
        var fw=getContainer.offsetWidth-(2*getContainer.clientLeft);
        var 
fh=getContainer.offsetHeight-(2*getContainer.clientTop); var iw=getIMG.width; var ih=getIMG.height; var m=iw/fw;//圖片與父元素寬度比 var n=ih/fh;//圖片與父元素高度比 if(m>=1&&n<=1)//圖片比父元素寬 或者圖片比父元素短 { // iw=Math.ceil(iw/m); // ih=Math.ceil(ih/m); // getIMG.width=iw;
// getIMG.height=ih; iw=Math.ceil(iw/n); ih=Math.ceil(ih/n); getIMG.width=iw; getIMG.height=ih; } else if(m<=1&&n>=1)//圖片比父元素窄 或者圖片比父元素高 { iw=Math.ceil(iw/m); ih=Math.ceil(ih/m); getIMG.width=iw; getIMG
.height=ih; } else if(m>=1&&n>=1) { getMAX=Math.min(m,n); iw=Math.ceil(iw/getMAX); ih=Math.ceil(ih/getMAX); getIMG.width=iw; getIMG.height=ih; } // if(getIMG.height<fh) // { // var getDistance=Math.floor((fh-getIMG.height)/2); // getIMG.style.marginTop=getDistance.toString()+"px"; var getDistance; var getDistance2; if(fh>getIMG.height){ getDistance=Math.floor((fh-getIMG.height)/2); getIMG.style.marginTop=getDistance.toString()+"px"; }else { getDistance=Math.floor((getIMG.height-fh)/2); getIMG.style.marginTop="-"+getDistance.toString()+"px"; } if(fw>getIMG.width){ getDistance2=Math.floor((fw-getIMG.width)/2); getIMG.style.marginLeft=getDistance2.toString()+"px"; }else { getDistance2=Math.floor((getIMG.width-fw)/2); getIMG.style.marginLeft="-"+getDistance2.toString()+"px"; } }
html中:
<div class="sy_pic" id="imgcontainer"><img src="${contextPath}/content/images/logo_02.png" /></div>
css樣式:
.sy_pic{
    width:200px;
    height:300px;
    text-align:center;
    overflow: hidden;
    border:#000 solid 5px;
}


相關推薦

js實現div圖片適應大小 裁剪

主要用js來重新計算圖片的大小, window.onload=function(){ changeImgSize(); } function changeImgSize(){ var getContainer=docume

CSS百分比padding實現比例固定圖片適應布局 (轉載)

缺失 com 我們 展現 auto ie6 iphone7 恰恰 備案 一、CSS百分比padding都是相對寬度計算的 在默認的水平文檔流方向下,CSS margin和padding屬性的垂直方向的百分比值都是相對於寬度計算的,這個和top, bottom等屬性的百分比

圖片適應大小

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http:/

css實現div高度根據適應寬度(百分比)調整

在如今響應式佈局的要求下,很多能自動調整尺寸的元素能夠做到高寬自適應,如img,通過{width:50%;height:auto;}實現圖片高度跟隨寬度比例調整。 然而,用的最多的標籤一哥Div卻不能做到自動調整(要麼從父級繼承,要麼自行指定px,要麼給百分比!但是這個

手機瀏覽器用css設定圖片適應大小

手機頁面不像pc網站, 儘可能避免使用js指令碼, 以避免不同的手機瀏覽器出現"水土不服". 手機瀏覽器(移動站點)圖片自適應的css程式碼: img{max-width: 100%;height: auto;width: auto\9;}

背景圖片適應大小(css3)

body {             background: url(/happytime/img/index.jpg) no-repeat center center fixed;              background-size: 100%;//此處要注

手機移動網站適應高度,手機網頁圖片適應大小

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 如果寬要全部顯示,就設定為width:100%,height:auto,反之就設定為width:auto, height:100%

widget背景圖片適應大小

1 說明widget要想使背景圖片拉伸自適應大小,setsheetstyle的時候應該使用border-image,而不是background-image,如果使用的background-image那麼圖片會以填充的方式自適應大小 2 QLabel 的pixmap自適應大

響應式影象--圖片適應大小

之前在做圖片自適應的時候想到的辦法是把圖片作為背景然後新增background-size:100%;讓圖片填滿整個盒子的方式來實現,但這樣圖片會根據盒子的大小拉伸,導致顯示變形,bootstrap中有很好的解決方法: 響應式影象 <imgsrc="..."clas

ReactNative之Image元件適應高度,圖片適應大小

因為在現在0.50包括之前的ReactNative版本,Image元件必須要設定寬高才能顯示。所以在圖片寬高不確定的情況下,如何來讓圖片自適應螢幕高度呢?需求原因:因為做商城詳情頁面的圖片長短不一,所以要自適應圖片顯示高度。這個需求就產生了。以下方法:getSize方法 傳入

淺談 sencha 2.0 中image和carousel的圖片適應大小的應用

        在sencha 2.0中,經常會用到xtype:image, 但是這個型別的使用,它的表現形式都是一個<div>,然後給把我們要顯示的圖片作為背景圖片放入這個div中,這樣,我們往往不好設定它的大小,因為圖片是背景圖片,高寬都不如<img&

html 標籤背景圖片適應div大小

只需通過css設定background-size屬性為contain,即 background-size:contain 注意:一定要在先設定background之後再設定background-size屬性,這樣才有效

css讓圖片適應容器(div大小

我們在寫頁面的時候經常會遇到需要圖片 自適應 容器大小這樣的情況,下面我就開門見山的說明一下怎樣去實現這樣一個效果。 <div> <img src="1.jpg" alt=""> </div>123 備註一下這裡的圖片

viewPager+photoView實現圖片輪播和手勢縮放功能 支援手勢縮放的imageView 如何實現相簿左右滑動和手勢縮放 如何讓圖片適應控制元件大小 photoView如何使用(上)

import uk.co.senab.photoview.IPhotoView; import uk.co.senab.photoview.PhotoViewAttacher; import uk.co.senab.photoview.PhotoViewAttacher.OnMatrixChangedList

div的Img圖片適應容器的大小

廢話不多說,讓imd圖片自適應大小,網上東拼西湊得到了兩套方案,且都能實行 方案一:只要設定了父容器的大小,那麼img就會自適應大小 <img src="../../libs/images

JQuery載入圖片適應DIV大小

 程式碼如下:   .divImg{ max-height:200px; max-width:200px; width: expression(this.width > 200 && this.width > this.height ? 2

用background-size實現 背景圖片適應瀏覽器大小,但不變形

 很多flash站都用到了一張背景圖,然後根據瀏覽器大小自動縮放,但圖片不變形。在CSS3中,有屬性:background-size: cover; //只支援IE9+ -webkit-background-size: cover; //webkit核心 -moz-bac

如何實現背景圖片適應td大小

<td style="filter: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-

HTML中使背景圖片適應瀏覽器大小

pub 拉伸 htm char html back 圖片 title tran 1、圖片不夠大,又background屬性不能拉伸圖片; 2、只能用個div,把其z-index值設為負,並使這個div大小為整個body大小,在div裏用<img> 3、b

Qt圖片適應窗口控件大小(使用setScaledContents)

tails 解釋 兩種 適應 多余 contents 窗口大小 使用方法 自動 最近在用Qt設計一個小程序,想讓一幅圖片自適應窗口大小,由於本人比較笨,一直找不到好方法。找到了很多方法但都會出一些小問題,剛剛摸索出解決辦法了,在些記錄。 思想: 1 顯示圖像是