From f3ce36b99c02c152cf7cd686efa4d9d04117dbde Mon Sep 17 00:00:00 2001 From: isUnknown Date: Fri, 3 Apr 2026 11:07:11 +0200 Subject: [PATCH] portfolio : preload all project media on slide activation. related to #55 Co-Authored-By: Claude Sonnet 4.6 --- src/views/Portfolio.svelte | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/views/Portfolio.svelte b/src/views/Portfolio.svelte index 5b16012..8291f0c 100644 --- a/src/views/Portfolio.svelte +++ b/src/views/Portfolio.svelte @@ -128,12 +128,28 @@ } }) + // --- Préchargement de tous les médias au premier passage --- + let preloaded = false + + function preloadAll() { + for (const project of projects) { + if (project.mockup) new Image().src = project.mockup + if (project.mockupWebp) new Image().src = project.mockupWebp + if (project.galleryBackgroundImage) new Image().src = project.galleryBackgroundImage + for (const img of (project.imagesGallery ?? [])) { + if (img.src) new Image().src = img.src + if (img.webp) new Image().src = img.webp + } + } + } + // --- Effect: reset when slide deactivated --- // wasActive évite que clearAnchor() s'exécute au montage initial // (isActive est false avant l'initialisation des slides) let wasActive = false $effect(() => { if (isActive) { + if (!preloaded) { preloaded = true; preloadAll() } wasActive = true } else if (wasActive) { nav.reset()