网格状、多响应图像
Grid-like, Multiple Responsive Images
我目前正在组建一个展示网站,在主内容区需要有许多图像/项目,以一个盒子状的顺序排列在一起。。。
http://jsfiddle.net/bdv3t/
我该如何制作它,以便当浏览器窗口被打开并变得更小时,这些图像/项目中的每一个都会逐渐缩小,并与其所在的容器成比例(因此,在大屏幕上,从左到右大约有8个图像/项目,这与在小屏幕上相同,只有每个图像的尺寸更小)?
我已经研究过使用像这样的响应图像,但没有成功,因为它只使一个图像全宽。如果可以的话,我希望避免使用表,更喜欢CSS-HTML方法而不是JS,但如果其他方法都失败了,JS方法就足够了。
在页面中包含jQuery,例如:
<script src="jquery-latest.js"></script>
在你的所有拼图中添加一个类,例如:
<li><img class="pieces" src="http://dummyimage.com/200x200/000/fff" alt="1" width="200" height="200"/></li>
<li><img class="pieces" src="http://dummyimage.com/200x200/000/fff" alt="1" width="200" height="200"/></li>
// etc.
包括这样的JavaScript(这个会让你的拼图变成窗口大小的1/5):
$(document).ready(function() {
$(window).on("resize", function() {
$(".pieces").width($(window).width() / 5).height($(window).height() / 5);
});
});
我用你的Fiddle测试了一下,效果很好。要在Fiddle中包含jQuery,请选择左侧的jQuery作为框架(例如,jQuery 1.7.2)。然后将类名添加到片段中,并在JavaScript框中添加脚本。测试,直到你得到你想要的确切行为。
编辑:如果要最大限度地减少像素失真,请使用多种不同的图像大小,并在调整大小之前将图像源重置为最接近的可用大小。例如,假设瓷砖的图像大小为400x400、300x300、200x200、100x100和50x50。JavaScript将更改为以下内容:
$(document).ready(function() {
updatePieceSize = function() {
var side, imgSize, src;
side = Math.min($(window).width(), $(window).height()) / 5;
if (side >= 350) {
imgSize = "400x400";
} else if (side >= 250) {
imgSize = "300x300";
} else if (side >= 150) {
imgSize = "200x200";
} else if (side >= 75) {
imgSize = "100x100";
} else {
imgSize = "50x50";
}
src = "http://dummyimage.com/" + imgSize + "/000/fff";
$(".pieces").attr("src", src).width(side).height(side);
};
$(window).on("resize", updatePieceSize);
updatePieceSize();
});
Edited fiddle只需检查,如果您想要其他内容,请回复。
@媒体查询解决方案。
很明显,这是可以重写的,但有些东西。。。
http://jsfiddle.net/LAWNQ/
如果你对拥有多个图像源感兴趣,这样它们可以更愉快地放大,你可能想尝试其中之一:
- Scott Jehl的流行picturefill polyfill,可以"自动"进行图像交换
- 我的Jquery.Pikhur插件,如果你喜欢这类东西,它会给你更多细粒度的控制
- 具有javascript document.write的响应图像
- 网格状、多响应图像
- 响应图像tinymce图像链接
- jQuery Mobile Listview中的响应图像
- 使用getJSON填充动画响应图像网格
- 响应图像(通过管道和response.end())会导致奇怪的行为
- 创建响应图像的最简单方法是什么
- 在引导列中垂直居中响应图像
- 引导程序:面板中的响应图像
- 基于JQuery的全宽响应图像滑块已损坏
- 像元srcset响应图像翻转
- 具有翻转/图像交换功能的响应图像地图位于潜水器外部
- 检测宽度并使用响应图像
- 简单的响应图像方法
- 固定位置的响应图像周围的内容
- 响应图像映射与坐标
- 我如何使一个响应图像地图,其中图像和热点自动调整大小与窗口
- 覆盖响应图像
- 响应图像滑块居中图像
- 如何在不影响图像大小的情况下对响应图像进行中心缩放