加载网络未知尺寸图片,自动缩放并水平、垂直居中显示

个人随笔
代码实现以下功能:
1、加载网络未知尺寸的图片,用户可以随意输入显示区的大小,图片会自动适应宽高。
2、水平、垂直居中未知尺寸的图片

1
<!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>水平并垂直居中未知大小的图片</title> 6 <style> 7 #imageBox { 8 width: 250px; 9 height: 250px; 10 margin: 30px auto; 11 border: 1px solid green; 12 display: table; /**key point**/ 13 text-align: center; 14 } 15 16 .spaceSpan { 17 height: 100%; 18 display: table-cell; /**key point**/ 19 vertical-align: middle; /**key point**/ 20 } 21 22 #testImage { 23 vertical-align: middle; 24 } 25 26 </style> 27 <script> 28 function zoomImage(imageId, imageBoxWidth, imageBoxHeight) { 29 var image = document.getElementById(imageId); 30 //计算出图片容器的宽高比 31 var imageBoxWidthHeightScale = imageBoxWidth / imageBoxHeight; 32 //计算出实际图片的宽高比 33 var imageWidthHeightScale = image.width / image.height; 34 var widthScale = image.width / imageBoxWidth; 35 var heightScale = image.height / imageBoxHeight; 36 var maxScale = Math.max(widthScale, heightScale); 37 if (maxScale < 1) { //图片宽高都比盒子小时不对图片操作 38 return null; 39 } else { //图片的宽或者高大于盒子大小时 40 if (imageBoxWidthHeightScale > imageWidthHeightScale) { //盒子相对图片来说更"扁",此时控制图片的高度 41 image.height *= heightScale > 1 ? 1 / heightScale : heightScale; 42 } else { //图片相对盒子来说更"扁",此时控制图片的宽度 43 image.width *= widthScale > 1 ? 1 / widthScale : widthScale; 44 } 45 } 46 } 47 </script> 48 </head> 49 <body> 50 <div id="imageBox"> 51 <span class="spaceSpan"> 52 <image id="testImage" 53 src="http://daily.clzg.cn/res/1/20160311/75231457630062963.jpg" 54 onload="zoomImage('testImage',200,200)"/> 55 </span> 56 </div> 57 </body> 58 </html>

实际效果如下图:



 

转载于:https://www.cnblogs.com/Farris/p/5372114.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值