JS等比例缩放图片并构建图片水平垂直居中解决方案

来源:互联网 发布:淘宝服务软件哪个好 编辑:程序博客网 时间:2024/05/20 14:28

有的时候需要展示图片的时候需要展示好看一些,就像WINDOWS文件夹图片缩略展示,图片可以等比例缩放又可以水平垂直方向都居中,这样多好?可惜网上这样的解决方案并不多,下面给出具体解决方案,希望能帮助到一些朋友!

一、JS实现图片等比例缩放
在写JS之前先了解下图片本身加载的时候会触发onload事件,这样就可以利用这个事件做一些处理了~~

<ul>    <li><img src="promotion.jpg" onload="autoSize(this,100,100)"></li></ul>
上面HTML代码图片加载时调用autoSize函数,函数有3个参数,依次分别为图片本身对象、父元素高度、父元素宽度
下面给出autoSize函数具体写法
function autoSize(ImgD,h,w) {    var image = new Image();     image.src = ImgD.src;     if (image.width<w && image.height<h) {        ImgD.width=image.width;        ImgD.height=image.height;    } else {        if (w / h <= image.width / image.height) {            ImgD.width=w;            ImgD.height=w * (image.height / image.width);        } else {            ImgD.width=h * (image.width / image.height);            ImgD.height=h;        }    }}
到此图片等比例缩放已经好了~~~

二、缩放后的图片水平垂直居中
在上一篇http://blog.csdn.net/qczxl/article/details/50013013已经给出了图片水平垂直居中的例子了。下面直接给出实现代码。

<ul>    <li><img src="promotion.jpg" onload="autoSize(this,100,100)"><span></span></li>    <li><img src="640.jpg" onload="autoSize(this,100,100)"><span></span></li></ul>
给每个图片加兄弟标签行内标签,如span、i 等标签
样式代码:
ul { list-style-type: none;  overflow: hidden; }    ul li { width: 100px; height: 100px; border:1px solid #ccc; float: left; margin-right: 10px; text-align: center; }    ul li span { display: inline-block; width: 0; height: 100%; vertical-align: middle; }    ul li img { vertical-align: middle; }
到此图片水平垂直居中也好了~~~~~

三、具体效果看下图

如有错误欢迎大家指出!


1 0
原创粉丝点击