3または4列が自動的に決定されるかどうかにかかわらず、画面サイズに従ってウェブページの画像のグリッドのサイズを変更しようとしています。イメージの幅はすべての列で同じですが、高さは可変です。画像をプリセットアスペクト比にリサイズする
実際の画像のサイズ/比率にかかわらず、伸びずにオーバーフローをカットするだけで、完全な1:1.5の比率でサイズ変更するには、すべての画像が必要です。私の最初の考えは、 "h"の計算をw * 1.5
に変更することでしたが、運はありません。
(function() {
var $K = $('#posts').css("position", "relative");
var rsz_i = undefined;
var rs z = function() {
if (rsz_i != undefined)
clearTimeout(rsz_i);
rsz_i = setTimeout(real_rsz, 100);
};
var first = true;
var real_rsz = function() {
var C = Math.ceil($("#posts-container").width()/350);
var w = Math.ceil($("#posts-container").width()/C);
console.log("rsz", C, w);
$(".entry").css({ "width": w+"px" });
setTimeout(function() {
var col = 0, y = [], h = 0;
$(".entry").each(function() {
if (!y[col])
y[col] = 0;
$(this).css({
"position": "absolute",
"left": (col * w)+"px",
"top": y[col]+"px"
});
y[col] += $(this).height();
h = Math.max(h, y[col]);
col += 1;
if (col >= C)
col = 0;
});
$("#posts").css("height", h+"px");
if (first) {
first = false;
setTimeout(real_rsz, 150);
}
}, 150);
};
$K.imagesLoaded(function() {
$(window).on("resize", rsz);
rsz();
});
});
これはほぼ完全に機能しました。しかし、イメージは上端から整列され、下端ではyオーバーフローがカットされます。 divのxとyの両方に画像を中心に置くにはどうすればよいですか?マージン:auto autoは機能しておらず、vert/horzも整列していません。 – chill8888
スニペットを更新しました。私はそれがあなたが探していたものだったことを願っています。 –