javascript - 根据浏览器窗口大小流畅地调整所有图像的大小

标签 javascript html css

我正在遍历所有图像并像这样非常简单地显示它们:

<div class="big-container">
    <!--for every image-->
    <div class="image-container">
        <img class="image" src="url">
    </div>
    <!-- end of iteration -->
</div>

使用同样简单的 css 解决方案:

.image-container {
    display: inline-block;
    max-width: 312px;
    height: auto;

    img.image {
        max-width: 100%;
    }
}

但是,我想在用户调整窗口大小时流畅地调整所有图像的大小。因此随着窗口缩小的每个像素,图像都应该缩小一些。这样一来,当窗口真的很窄时(对于移动设备),图像不会一个接一个地显示在页面下方,而是两个接两个地显示。现在它们不会调整大小,直到窗口真的太小而无法显示一张图像。

有没有一种方法可以使用 CSS(nth-child?)或 JavaScript 来流畅地实现这一点,而不会对浏览器造成太大压力?我听说浏览器中的调整大小检查不应该是这样。

最佳答案

尝试使用一组媒体查询并进行计算,看看是否有帮助。我在容器上使用 font-size: 0; 技巧来删除内联 block 之间的空白区域。

https://jsfiddle.net/Lnxd0yra/2/

body {
  margin: 0;
}
.container {
  font-size: 0;
}
.item {
  font-size: 16px;
  display: inline-block;
  width: 312px;
}
.item img {
  width: 100%;
  height: auto;
  display: block;
}
@media (max-width: 1248px) { /*312x4*/
  .item {
    width: 25%;
  }
}
@media (max-width: 936px) { /*312x3*/
  .item {
    width: 33.3333%;
  }
}
@media (max-width: 624px) { /*312x2*/
  .item {
    width: 50%;
  }
}
@media (max-width: 312px) { /*312x1*/
  .item {
    width: 100%;
  }
}
<div class="container">
  <div class="item"><img src="https://unsplash.it/200"></div>
  <div class="item"><img src="https://unsplash.it/200"></div>
  <div class="item"><img src="https://unsplash.it/200"></div>
  <div class="item"><img src="https://unsplash.it/200"></div>
  <div class="item"><img src="https://unsplash.it/200"></div>
  <div class="item"><img src="https://unsplash.it/200"></div>
</div>

关于javascript - 根据浏览器窗口大小流畅地调整所有图像的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34603394/

相关文章:

javascript - 如何访问 JSON Object.$$state.value?

javascript - JS关闭事件在页面上不起作用,如何找出错误?

javascript - jquery悬停缺少一些东西

javascript - 每行两个div的AngularJS ng-repeat网格

javascript - 远程调查/测量动态页面偶尔加载缓慢的速度

javascript - 以 gzip 格式从 node.js 服务器向客户端发送 socket.io 响应数据

javascript - 无法计算元素的大小

html - 将 anchor 标记的显示分成多行

javascript - 延迟悬停在子菜单上

javascript - jQuery Mobile : Debugging Touch events, 数据位置 ="fixed"问题