@bebranded/bb-contents 1.0.149 → 1.0.151
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 +58 -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.151');
|
|
36
36
|
|
|
37
37
|
// Configuration
|
|
38
38
|
const config = {
|
|
@@ -572,10 +572,66 @@
|
|
|
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
|
+
// Pour "left", on force le rendu de la partie DROITE (où les copies apparaîtront)
|
|
579
|
+
// Pour "right", on force le rendu de la partie GAUCHE
|
|
580
|
+
const forceFullRender = function() {
|
|
581
|
+
return new Promise(function(resolve) {
|
|
582
|
+
// Calculer la largeur totale des copies
|
|
583
|
+
const totalWidth = Math.max(
|
|
584
|
+
repeatBlock1.offsetWidth || 0,
|
|
585
|
+
repeatBlock2.offsetWidth || 0
|
|
586
|
+
);
|
|
587
|
+
|
|
588
|
+
if (totalWidth > 0 && totalWidth > window.innerWidth) {
|
|
589
|
+
// Déplacer temporairement le conteneur pour forcer le rendu
|
|
590
|
+
tempContainer.style.left = '0px';
|
|
591
|
+
tempContainer.style.width = totalWidth + 'px';
|
|
592
|
+
tempContainer.style.overflow = 'visible';
|
|
593
|
+
|
|
594
|
+
// Forcer un reflow pour que le navigateur calcule les dimensions
|
|
595
|
+
void tempContainer.offsetWidth;
|
|
596
|
+
|
|
597
|
+
// NOUVEAU: Pour "left", déplacer pour que la FIN soit visible (partie droite)
|
|
598
|
+
// Pour "right", déplacer pour que le DÉBUT soit visible (partie gauche)
|
|
599
|
+
// On va faire les deux pour être sûr que tout est rendu
|
|
600
|
+
const translateXEnd = Math.max(0, totalWidth - window.innerWidth);
|
|
601
|
+
const translateXStart = 0;
|
|
602
|
+
|
|
603
|
+
// D'abord rendre la fin (pour "left" - où les copies apparaîtront)
|
|
604
|
+
tempContainer.style.transform = 'translateX(-' + translateXEnd + 'px)';
|
|
605
|
+
void tempContainer.offsetWidth;
|
|
606
|
+
requestAnimationFrame(function() {
|
|
607
|
+
// Ensuite rendre le début (pour "right" - où les copies apparaîtront)
|
|
608
|
+
tempContainer.style.transform = 'translateX(-' + translateXStart + 'px)';
|
|
609
|
+
void tempContainer.offsetWidth;
|
|
610
|
+
requestAnimationFrame(function() {
|
|
611
|
+
// Revenir à la position initiale
|
|
612
|
+
tempContainer.style.transform = '';
|
|
613
|
+
tempContainer.style.left = '-9999px';
|
|
614
|
+
tempContainer.style.width = 'auto';
|
|
615
|
+
void tempContainer.offsetWidth;
|
|
616
|
+
requestAnimationFrame(function() {
|
|
617
|
+
requestAnimationFrame(resolve);
|
|
618
|
+
});
|
|
619
|
+
});
|
|
620
|
+
});
|
|
621
|
+
} else {
|
|
622
|
+
// Si pas besoin de déplacement, juste attendre un frame
|
|
623
|
+
requestAnimationFrame(function() {
|
|
624
|
+
requestAnimationFrame(resolve);
|
|
625
|
+
});
|
|
626
|
+
}
|
|
627
|
+
});
|
|
628
|
+
};
|
|
629
|
+
|
|
575
630
|
// Attendre que toutes les images soient rendues dans les copies
|
|
576
631
|
Promise.all([
|
|
577
632
|
waitForImagesRender(repeatBlock1),
|
|
578
|
-
waitForImagesRender(repeatBlock2)
|
|
633
|
+
waitForImagesRender(repeatBlock2),
|
|
634
|
+
forceFullRender() // NOUVEAU: Forcer le rendu complet
|
|
579
635
|
]).then(function() {
|
|
580
636
|
// Retirer les copies du conteneur temporaire
|
|
581
637
|
document.body.removeChild(tempContainer);
|