@bebranded/bb-contents 1.0.150 → 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 +31 -16
- 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 = {
|
|
@@ -575,6 +575,8 @@
|
|
|
575
575
|
// NOUVEAU: Forcer le rendu complet en déplaçant temporairement le conteneur
|
|
576
576
|
// pour que toutes les parties soient visibles (même brièvement)
|
|
577
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
|
|
578
580
|
const forceFullRender = function() {
|
|
579
581
|
return new Promise(function(resolve) {
|
|
580
582
|
// Calculer la largeur totale des copies
|
|
@@ -584,8 +586,7 @@
|
|
|
584
586
|
);
|
|
585
587
|
|
|
586
588
|
if (totalWidth > 0 && totalWidth > window.innerWidth) {
|
|
587
|
-
// Déplacer temporairement le conteneur pour forcer le rendu
|
|
588
|
-
// On le place à gauche de l'écran puis on le déplace pour que tout soit visible
|
|
589
|
+
// Déplacer temporairement le conteneur pour forcer le rendu
|
|
589
590
|
tempContainer.style.left = '0px';
|
|
590
591
|
tempContainer.style.width = totalWidth + 'px';
|
|
591
592
|
tempContainer.style.overflow = 'visible';
|
|
@@ -593,22 +594,36 @@
|
|
|
593
594
|
// Forcer un reflow pour que le navigateur calcule les dimensions
|
|
594
595
|
void tempContainer.offsetWidth;
|
|
595
596
|
|
|
596
|
-
//
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
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;
|
|
600
602
|
|
|
601
|
-
//
|
|
602
|
-
tempContainer.style.transform = '';
|
|
603
|
-
tempContainer.style.left = '-9999px';
|
|
604
|
-
tempContainer.style.width = 'auto';
|
|
603
|
+
// D'abord rendre la fin (pour "left" - où les copies apparaîtront)
|
|
604
|
+
tempContainer.style.transform = 'translateX(-' + translateXEnd + 'px)';
|
|
605
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
|
+
});
|
|
606
626
|
}
|
|
607
|
-
|
|
608
|
-
// Attendre un frame pour que le rendu soit complet
|
|
609
|
-
requestAnimationFrame(function() {
|
|
610
|
-
requestAnimationFrame(resolve);
|
|
611
|
-
});
|
|
612
627
|
});
|
|
613
628
|
};
|
|
614
629
|
|