使用方法:

1.定义ResizeImg(obj)方法

 function ResizeImg(obj) {
var boxHeight = $(".box").height();
var boxWidth = $(".box").width();
var imgHeight = $(obj).height();
var imgWidth = $(obj).width();
$(obj).css("position", "relative");
if (imgHeight * boxWidth >= imgWidth * boxHeight) {
//调整后,高度超出的情况
var afterImgHeight = boxWidth * imgHeight / imgWidth;
$(obj).css("width", boxWidth + "px").css("height", afterImgHeight + "px");
var offsetTop = (afterImgHeight / 2) - (boxHeight / 2);
$(obj).css("top", "-" + offsetTop + "px"); // -20px
}
else {
//调整后,宽度超出的情况
var afterImgWidth = boxHeight * imgWidth / imgHeight;
$(obj).css("height", boxHeight + "px").css("width", afterImgWidth + "px");
var offsetLeft = (afterImgWidth / 2) - (boxWidth / 2);
$(obj).css("left", "-" + offsetLeft + "px"); // -20px
}
console.log("resize ok.");
}

2.在img标绑定onload事件处理方法为ResizeImg.

<img src="xxx.jpg"  onload="ResizeImg(this)"/>

3.注意:

不设置图片的宽,高;

需设置图片定位属性,position: relative;

效果如下图:

js脚本控制图片水平与垂直居中的更多相关文章

  1. DIV里面的图片水平与垂直居中的方法

    <div class=“box”> <img /> </div> 1.水平居中: 1)box设置  text-align:center ;    text-alig ...

  2. DIV或者DIV里面的图片水平与垂直居中的方法

    <div class=“box”> <img /> </div> 水平居中的常用方式: text-align:center ——这可以实现子元素字体,图片的水平居中 ...

  3. 使图片水平并垂直居中的一个Hack

    淘宝的一个前端面试题:使用纯CSS实现未知尺寸的图片(但高宽都小于200px)在200px的正方形容器中水平和垂直居中. 想起了vertical-align:middle;但是不行,后来才知道还要di ...

  4. css设置图片水平及垂直居中

    .box { /*非IE的主流浏览器识别的垂直居中的方法*/ display: table-cell; vertical-align:middle; /*设置水平居中*/ text-align:cen ...

  5. JS/JQuery控制图片宽度

    function changeImgWidth(){ for (i = 0; i <$('#info img').length; i++) { var imgWidth=$('#info img ...

  6. jQuery.rotate.js(控制图片转动)

    jQuery.rotate.js笔记   1. jQuery.rotate.js是什么 一个开源的兼容多浏览器的jQuery插件用来对元素进行任意角度的旋转动画. 这个库开发的目的是为了旋转img的, ...

  7. js 滚轮控制图片缩放大小和拖动

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. css 水平、垂直居中

    水平居中 行内元素 行内元素:(img.span.文字等行内元素),通过在父级元素设置 text-align:center 使元素水平居中. 块级元素 块级元素:(div.p.h1...h6.ul.l ...

  9. js控制图片缩放、水平和垂直方向居中对齐

    已測试兼容 IE6,IE7,IE8,火狐FF,谷歌chrome. 这里使用了jquery插件,假设你不使用jquery,略微改造一下也非常快. 网上查了些资料,用css控制兼容性不好,看去非常揪心.于 ...

随机推荐

  1. 解决Activity启动黑屏及设置android:windowIsTranslucent不兼容activity切换动画问题

    From:http://blog.csdn.net/fancylovejava/article/details/39643449 之前在做 APP 的时候不太关注这个问题,因为自己在使用其他 APP ...

  2. PMP 笔记

    项目: 为创造独特的产品.服务或结果而进行的临时性工作. 项目特征: 独特性:Unique.临时性:Temporary.渐进明细. 渐进明细:预算越来越精细.比如三峡工程中,预算从10亿级的误差到1亿 ...

  3. StartUML-时序图

  4. proxy ubuntu proxy--http://jingyan.baidu.com/article/8cdccae9913470315513cd70.html

    apt-get 设置代理 proxy 方法 方法一 :这是一种临时的手段,如果你仅仅是暂时需要通过http代理使用apt-get,你可以使用这种方法. 在使用 apt-get  之前,在终端中输入以下 ...

  5. JavaScript如何把字符串中每个单词首字母转化为大写

    先上代码,再做解释. 思路分析: 1. 首先先把字符串中的单词转化为小写(toLowerCase),再对其进行截取(split),截取依据为按照空格截取: 2. 此时经过步骤一之后得到的东西是一个数组 ...

  6. 如何通过iframe调用其他页面的内容

    我们在建站的时候经常会在页面出现同样的内容,比如公司简介之类的,这些东西很长,会减低网页的原创程度,相似度太高,对SE不是很友好.这时我们可以考虑把这部分内容写成一个单独的简单页面,然后通过ifram ...

  7. blockchain 区块链的开发,基于python或node js

    现在很多人用node js做区块链的开发,因为点对点并发是区块链中的难点技术之一,而node js天然的对并发支持比较好,因此比较有优势. http://ecomunsing.com/build-yo ...

  8. PAT 1135 Is It A Red-Black Tree[难]

    1135 Is It A Red-Black Tree (30 分) There is a kind of balanced binary search tree named red-black tr ...

  9. PAT 1061 Dating[简单]

    1061 Dating(20 分) Sherlock Holmes received a note with some strange strings: Let's date! 3485djDkxh4 ...

  10. (21)纹理缓存(Texture Cache)

    简介 纹理缓存是将纹理缓存起来方便之后的绘制工作.每一个缓存的图像的大小,颜色和区域范围都是可以被修改的.这些信息都是存储在内存中的,不用在每一次绘制的时候都发送给GPU. CCTextureCach ...