博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图片等比例缩放
阅读量:5743 次
发布时间:2019-06-18

本文共 2459 字,大约阅读时间需要 8 分钟。

/**计算图片宽和高的css代码(主要内容)**/

img{

max-width: 220px;

max-height: 220px;
scale: expression((this.offsetWidth > this.offsetHeight)?(this.style.width = this.offsetWidth >= 220 ? "220px" : "auto"):(this.style.height = this.offsetHeight >= 220 ? "220px" : "auto"));
display: inline !important;

}

 

 

/**示例代码片段**/

<head>

  <style type="text/css">

    <!--计算图片宽和高-->
    img {max-width:200px; max-height:200px;
    scale:expression((this.offsetWidth > this.offsetHeight)?(this.style.width = this.offsetWidth >= 200 ? "200px" : "auto"):(this.style.height = this.offsetHeight >= 200 ? "200px" : "auto"));
    display:inline !important;}

  </style>

</head>

<!--测试代码body内容-->

<body>

  <div style="width:200px; height:200px; text-align:center ;vertical-align: middle;display:table-cell; border:1px solid red;">

    <img class="imgbox" id="test" src="img/1.jpg"/>
  </div>
  <div style="width:200px; height:200px; text-align:center ;vertical-align: middle;display:table-cell; border:1px solid red;">
    <img class="imgbox" id="test0" src="img/2.jpg"/>
  </div>
  <div style="width:200px; height:200px; text-align:center; vertical-align: middle; border:1px solid red; display:table-cell;">
    <img class="imgbox" id="test1" src="img/3.jpg"/>
  </div>

<body>

截止到这里,标题描述的需求已经结束了....

 效果图如下:

 

 

思路及说明及问题:

非专业前端工程师,碰到这玩意网上找了半天...

之前考虑用js脚本来计算,后面碰到个问题(见最底部),最终未能解决,后面又考虑css 最后还是css完美解决...

记录下来以后备用同时给碰到同样需求的朋友提供个思路!

另外下面有个问题未解决!如有大神路过,希望指点一二...

 

 

/**js设置图片宽高脚本(存在谷歌浏览器兼容问题 故最终未使用)**/

/*根据指定大小和图片元素等比例计算宽和高*/

function AutoResizeImage(maxWidth, maxHeight, objImg) {

  var oldWidth = objImg.width == 0 ? maxWidth : objImg.width;
  var oldHeight = objImg.height == 0 ? maxHeight : objImg.height;
  var Ratio = oldWidth / oldHeight; //默认比例为1 不缩放
  var newWidth = maxWidth;
  var newHeight = maxHeight;
  //如果宽度小 则按高度来缩放
  if (oldWidth < oldHeight) {
    newHeight = oldHeight >= maxHeight ? maxHeight : oldHeight; //大于最大高度时取最大高度
    newWidth = newHeight * Ratio;
  } else if (oldWidth > oldHeight) {
  //按宽度缩放
  newWidth = oldWidth >= maxWidth ? maxWidth : oldWidth; //大于最大高度时取最大高度
  newHeight = newWidth / Ratio;
  } else {
  return;
}
objImg.width = newWidth;
objImg.height = newHeight;
};

 

/**调用**/

var objImg =document.getElementById("test");

AutoResizeImage(200,200,objImg);

var objImg0 =document.getElementById("test0");

AutoResizeImage(200,200,objImg0);

var objImg1 =document.getElementById("test1");

AutoResizeImage(200,200,objImg1);

 

转载于:https://www.cnblogs.com/3dianpomian/p/4846621.html

你可能感兴趣的文章
基础知识:python模块的导入
查看>>
Android MVC之我的实现
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
关于批处理-1
查看>>
Tomcat部署Web应用方法总结
查看>>
Python3 django2.0 字段加密 解密 AES
查看>>
CCNA实验之:网络地址转换(NAT)实验
查看>>
计算机网络原理笔记-停止等待协议
查看>>
确定当前记录和下一条记录之间相差的天数
查看>>
sql语句返回主键SCOPE_IDENTITY()
查看>>
机器学习开源项目精选TOP30
查看>>
iOS开发-邮件发送
查看>>
/etc/resolv.conf文件详解
查看>>
【转】VC的MFC中重绘函数的使用总结(整理)
查看>>
JQuery日记_5.13 Sizzle选择器(六)选择器的效率
查看>>
oracle查看经常使用的系统信息
查看>>
Django_4_视图
查看>>
Linux的netstat命令使用
查看>>
lvm讲解,磁盘故障小案例
查看>>