图片裁剪自适应
2016-01-24 21:53
295 查看
最近真是冷,才恍然早已是冬天,冻的手都僵了。
最近项目中图片需要统一固定宽高,但后台上传的各个图片比例并不是都一样的,直接把图片设置宽高会导致图片变形。
所以需要对图片进行处理,图片直接放在容器中默认的宽度低于容器的宽度,需要把图片高度设成容器高度,然后图片水平居中显示,反之垂直居中。
话不多说直接上代码,比较简单也就不详细讲解了,写成一个通用函数了可以拿过去直接使用。
如果你觉得这篇随笔对你有帮助可以支付宝(左)或微信(右)打赏小毅喝杯咖啡^_^
最近项目中图片需要统一固定宽高,但后台上传的各个图片比例并不是都一样的,直接把图片设置宽高会导致图片变形。
所以需要对图片进行处理,图片直接放在容器中默认的宽度低于容器的宽度,需要把图片高度设成容器高度,然后图片水平居中显示,反之垂直居中。
话不多说直接上代码,比较简单也就不详细讲解了,写成一个通用函数了可以拿过去直接使用。
functionresizeImg(imgClassName,imgWidth,imgHeight){ varimgs=document.getElementsByClassName(imgClassName); vari=0,img,parentDiv,newWidth,minusPx; for(;i<imgs.length;i++){ img=imgs[i]; img.style.position='absolute'; parentDiv=img.parentNode; parentDiv.style.width=imgWidth+'px'; parentDiv.style.height=imgHeight+'px'; parentDiv.style.position='relative'; parentDiv.style.overflow='hidden'; if(img.height/img.width<imgHeight/imgWidth){ newWidth=imgHeight/img.height*img.width; minusPx=(newWidth-imgWidth)/2; img.style.width=newWidth+'px'; img.style.height=imgHeight+'px'; img.style.clip='rect(0,'+(newWidth-minusPx)+'px,'+imgHeight+'px,'+minusPx+'px)'; img.style.marginLeft='-'+minusPx+'px'; }elseif(img.height/img.width>imgHeight/imgWidth){ minusPx=(img.height-imgHeight)/2; img.style.clip='rect('+minusPx+'px,'+imgWidth+'px,'+(img.height-minusPx)+'px,0)'; img.style.marginTop='-'+minusPx+'px'; } } } };
如果你觉得这篇随笔对你有帮助可以支付宝(左)或微信(右)打赏小毅喝杯咖啡^_^
相关文章推荐
- 字符串方法
- Node.js权威指南 (4) - 模块与npm包管理工具
- 【Usaco 2010 NOV Gold】奶牛的图片
- 【BZOJ2428】[HAOI2006]均分数据
- Node.js权威指南 (3) - Node.js基础知识
- scala习题(12)——高阶函数
- Mesos入门介绍
- 小蚂蚁学习数据结构(23)——伪代码中的引用
- 磁盘管理
- Linux主流架构运维工作简单剖析
- MongoDB的三种启动方式
- 我理解c#中的interface abstract virtual override和new
- 黑客专用 Linux 发行版 Kali Linux 发布了首个滚动更新版 2016.1
- emacs如何配置彩虹猫模式
- 《Learn You Some Erlang for Great Good!》的学习笔记(三)
- Node.js权威指南 (2) - Node.js中的交互式运行环境——REPL
- Node.js权威指南 (1) - Node.js介绍
- PHP——数组中的each(),list()和while循环遍历数组
- 深度学习开发工具
- 寒假练习一