Files
site-portfolio/public/js/modules/cases/natural-image-size.js
T

21 lines
625 B
JavaScript

export function initCaseNaturalImagesHalfSize() {
const images = Array.from(document.querySelectorAll(".case-media--natural img"));
if (!images.length) return;
function applyHalfSize(img) {
const naturalWidth = img.naturalWidth || 0;
if (!naturalWidth) return;
const halfWidth = Math.max(1, Math.round(naturalWidth / 2));
img.style.width = `${halfWidth}px`;
img.style.maxWidth = "100%";
}
images.forEach((img) => {
if (img.complete && img.naturalWidth > 0) {
applyHalfSize(img);
return;
}
img.addEventListener("load", () => applyHalfSize(img), { once: true });
});
}