javascript - 根据容器的高度和宽度计算图像的最佳尺寸

标签 javascript image math

如果我有一个固定宽度为 500px、高度为 500px 的容器,以及一个宽度为 600px、高度为 1200px 的图像,那么计算尺寸的最佳方法是什么,我需要让图像“适合”在容器同时保留图像的纵横比?

如果图像较小,则容器的宽度和高度都较小;没做什么。

根据上面的示例尺寸,我知道图像的最佳尺寸是:

宽度 = 250 高度 = 500

但是我需要执行什么计算才能实现这一目标?

最佳答案

JS:

$('.myimg').css('max-height', '100%');
$('.myimg').css('max-width', '100%');
.container {
  height: 500px;
  widtH: 500px;
  background: red;
  display: flex;
  align-items: center;
  justify-content: center;
}

.bggreen{
  background: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <img class="myimg" src="http://placehold.it/600x1200">
</div>
<hr>
<div class="container bggreen">
  <img class="myimg" src="http://placehold.it/60x120">
</div>
<hr>
<div class="container">
  <img class="myimg" src="http://placehold.it/120x60">
</div>
<hr>
<div class="container bggreen">
  <img class="myimg" src="http://placehold.it/1200x600">
</div>

使用 CSS 解决方案非常简单:

将 img 设置为 max-height: 100%;max-width: 100%;:

.container {
  height: 500px;
  widtH: 500px;
  background: red;
  display: flex;
  align-items: center;
  justify-content: center;
}

.myimg {
  max-height: 100%;
  max-width: 100%;
}

.bggreen {
  background: green;
}
<div class="container">
  <img class="myimg" src="http://placehold.it/600x1200">
</div>
<hr>
<div class="container bggreen">
  <img class="myimg" src="http://placehold.it/60x120">
</div>
<hr>
<div class="container">
  <img class="myimg" src="http://placehold.it/120x60">
</div>
<hr>
<div class="container bggreen">
  <img class="myimg" src="http://placehold.it/1200x600">
</div>

关于javascript - 根据容器的高度和宽度计算图像的最佳尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44219678/

相关文章:

javascript - 使用 JavaScript 访问 "animate"我的网页

unit-testing - 测试图像/视频转换类

php - 通过输入类型文件更新 blob 文件

java - 寻找 vector 之间的符号角

c++ - 使用四元数防止绕特定轴旋转

javascript - 调整容器的大小,两个灰色方 block 应该尽可能地增长,受对 Angular 线的约束..简单的方法吗?

javascript - 使用 null 作为条件的简单 js 循环

javascript - 将多个操作传递给 bindActionCreators

css - 通过 CSS 将图像更改为文本以进行打印?

javascript - 如何在html中的文本框中添加图片?