在您的页面中包含 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 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();
});