@bebranded/bb-contents 1.0.149 → 1.0.150
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bb-contents.js +43 -2
- package/package.json +1 -1
package/bb-contents.js
CHANGED
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
window._bbContentsInitialized = true;
|
|
33
33
|
|
|
34
34
|
// Log de démarrage simple (une seule fois)
|
|
35
|
-
console.log('bb-contents | v1.0.
|
|
35
|
+
console.log('bb-contents | v1.0.150');
|
|
36
36
|
|
|
37
37
|
// Configuration
|
|
38
38
|
const config = {
|
|
@@ -572,10 +572,51 @@
|
|
|
572
572
|
});
|
|
573
573
|
};
|
|
574
574
|
|
|
575
|
+
// NOUVEAU: Forcer le rendu complet en déplaçant temporairement le conteneur
|
|
576
|
+
// pour que toutes les parties soient visibles (même brièvement)
|
|
577
|
+
// Cela force le navigateur à rendre même les parties très larges sur grands écrans
|
|
578
|
+
const forceFullRender = function() {
|
|
579
|
+
return new Promise(function(resolve) {
|
|
580
|
+
// Calculer la largeur totale des copies
|
|
581
|
+
const totalWidth = Math.max(
|
|
582
|
+
repeatBlock1.offsetWidth || 0,
|
|
583
|
+
repeatBlock2.offsetWidth || 0
|
|
584
|
+
);
|
|
585
|
+
|
|
586
|
+
if (totalWidth > 0 && totalWidth > window.innerWidth) {
|
|
587
|
+
// Déplacer temporairement le conteneur pour forcer le rendu de toutes les parties
|
|
588
|
+
// On le place à gauche de l'écran puis on le déplace pour que tout soit visible
|
|
589
|
+
tempContainer.style.left = '0px';
|
|
590
|
+
tempContainer.style.width = totalWidth + 'px';
|
|
591
|
+
tempContainer.style.overflow = 'visible';
|
|
592
|
+
|
|
593
|
+
// Forcer un reflow pour que le navigateur calcule les dimensions
|
|
594
|
+
void tempContainer.offsetWidth;
|
|
595
|
+
|
|
596
|
+
// Maintenant déplacer pour que la fin soit visible (force le rendu de la fin)
|
|
597
|
+
const translateX = Math.max(0, totalWidth - window.innerWidth);
|
|
598
|
+
tempContainer.style.transform = 'translateX(-' + translateX + 'px)';
|
|
599
|
+
void tempContainer.offsetWidth;
|
|
600
|
+
|
|
601
|
+
// Revenir à la position initiale
|
|
602
|
+
tempContainer.style.transform = '';
|
|
603
|
+
tempContainer.style.left = '-9999px';
|
|
604
|
+
tempContainer.style.width = 'auto';
|
|
605
|
+
void tempContainer.offsetWidth;
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
// Attendre un frame pour que le rendu soit complet
|
|
609
|
+
requestAnimationFrame(function() {
|
|
610
|
+
requestAnimationFrame(resolve);
|
|
611
|
+
});
|
|
612
|
+
});
|
|
613
|
+
};
|
|
614
|
+
|
|
575
615
|
// Attendre que toutes les images soient rendues dans les copies
|
|
576
616
|
Promise.all([
|
|
577
617
|
waitForImagesRender(repeatBlock1),
|
|
578
|
-
waitForImagesRender(repeatBlock2)
|
|
618
|
+
waitForImagesRender(repeatBlock2),
|
|
619
|
+
forceFullRender() // NOUVEAU: Forcer le rendu complet
|
|
579
620
|
]).then(function() {
|
|
580
621
|
// Retirer les copies du conteneur temporaire
|
|
581
622
|
document.body.removeChild(tempContainer);
|