@bebranded/bb-contents 1.0.36-beta → 1.0.37-beta
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 +45 -28
- package/package.json +1 -1
package/bb-contents.js
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
// Configuration
|
|
19
19
|
const config = {
|
|
20
|
-
version: '1.0.
|
|
20
|
+
version: '1.0.37-beta',
|
|
21
21
|
debug: true, // Activé temporairement pour debug
|
|
22
22
|
prefix: 'bb-', // utilisé pour générer les sélecteurs (data-bb-*)
|
|
23
23
|
i18n: {
|
|
@@ -466,9 +466,13 @@
|
|
|
466
466
|
// Marquer l'élément comme traité par le module marquee
|
|
467
467
|
element.setAttribute('data-bb-marquee-processed', 'true');
|
|
468
468
|
|
|
469
|
-
// Fonction pour initialiser l'animation avec
|
|
469
|
+
// Fonction pour initialiser l'animation avec vérification robuste des dimensions
|
|
470
470
|
const initAnimation = (retryCount = 0) => {
|
|
471
|
-
//
|
|
471
|
+
// Vérifier que les images sont chargées
|
|
472
|
+
const images = mainBlock.querySelectorAll('img');
|
|
473
|
+
const imagesLoaded = Array.from(images).every(img => img.complete && img.naturalHeight > 0);
|
|
474
|
+
|
|
475
|
+
// Attendre que le contenu soit dans le DOM et que les images soient chargées
|
|
472
476
|
requestAnimationFrame(() => {
|
|
473
477
|
// Calcul plus robuste des dimensions
|
|
474
478
|
const rect = mainBlock.getBoundingClientRect();
|
|
@@ -486,29 +490,22 @@
|
|
|
486
490
|
bbContents.utils.log('Largeur corrigée pour marquee vertical:', finalWidth, 'px (était:', contentWidth, 'px)');
|
|
487
491
|
}
|
|
488
492
|
|
|
489
|
-
// Debug amélioré
|
|
490
|
-
bbContents.utils.log('Debug - Largeur
|
|
493
|
+
// Debug amélioré avec statut des images
|
|
494
|
+
bbContents.utils.log('Debug - Largeur:', finalWidth, 'px, Hauteur:', finalHeight, 'px, Images chargées:', imagesLoaded, 'Enfants:', mainBlock.children.length, 'Vertical:', isVertical, 'Direction:', direction, 'Tentative:', retryCount + 1);
|
|
491
495
|
|
|
492
|
-
//
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
bbContents.utils.log('Contenu non prêt, nouvelle tentative dans', (200 + retryCount * 100), 'ms');
|
|
496
|
-
setTimeout(() => initAnimation(retryCount + 1), 200 + retryCount * 100);
|
|
497
|
-
return;
|
|
498
|
-
} else {
|
|
499
|
-
bbContents.utils.log('Échec d\'initialisation après 5 tentatives');
|
|
500
|
-
return;
|
|
501
|
-
}
|
|
502
|
-
}
|
|
496
|
+
// Vérifications robustes avant initialisation
|
|
497
|
+
const hasValidDimensions = (isVertical && finalHeight > 50) || (!isVertical && finalWidth > 50);
|
|
498
|
+
const maxRetries = 8; // Plus de tentatives pour attendre les images
|
|
503
499
|
|
|
504
|
-
//
|
|
505
|
-
if (
|
|
506
|
-
if (retryCount <
|
|
507
|
-
|
|
508
|
-
|
|
500
|
+
// Si pas de contenu valide ou images pas chargées, réessayer
|
|
501
|
+
if (!hasValidDimensions || !imagesLoaded) {
|
|
502
|
+
if (retryCount < maxRetries) {
|
|
503
|
+
const delay = 300 + retryCount * 200; // Délais plus longs pour attendre les images
|
|
504
|
+
bbContents.utils.log('Contenu/images non prêts, nouvelle tentative dans', delay, 'ms');
|
|
505
|
+
setTimeout(() => initAnimation(retryCount + 1), delay);
|
|
509
506
|
return;
|
|
510
507
|
} else {
|
|
511
|
-
bbContents.utils.log('Échec d\'initialisation -
|
|
508
|
+
bbContents.utils.log('Échec d\'initialisation après', maxRetries, 'tentatives - dimensions:', finalWidth + 'x' + finalHeight, 'images chargées:', imagesLoaded);
|
|
512
509
|
return;
|
|
513
510
|
}
|
|
514
511
|
}
|
|
@@ -609,12 +606,22 @@
|
|
|
609
606
|
});
|
|
610
607
|
};
|
|
611
608
|
|
|
612
|
-
// Démarrer l'initialisation avec délai adaptatif
|
|
613
|
-
let initDelay = isVertical ?
|
|
609
|
+
// Démarrer l'initialisation avec délai adaptatif - Option 1: Attendre que tout soit prêt
|
|
610
|
+
let initDelay = isVertical ? 500 : 200; // Délais plus longs par défaut
|
|
614
611
|
if (bbContents._performanceBoostDetected) {
|
|
615
|
-
initDelay = isVertical ?
|
|
612
|
+
initDelay = isVertical ? 800 : 500; // Délais encore plus longs avec bb-performance-boost
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
// Attendre window.load si pas encore déclenché
|
|
616
|
+
if (document.readyState !== 'complete') {
|
|
617
|
+
bbContents.utils.log('Attente de window.load pour initialiser le marquee');
|
|
618
|
+
window.addEventListener('load', () => {
|
|
619
|
+
setTimeout(() => initAnimation(0), initDelay);
|
|
620
|
+
});
|
|
621
|
+
} else {
|
|
622
|
+
// window.load déjà déclenché, initialiser directement
|
|
623
|
+
setTimeout(() => initAnimation(0), initDelay);
|
|
616
624
|
}
|
|
617
|
-
setTimeout(() => initAnimation(0), initDelay);
|
|
618
625
|
});
|
|
619
626
|
|
|
620
627
|
bbContents.utils.log('Module Marquee initialisé:', elements.length, 'éléments');
|
|
@@ -1020,9 +1027,9 @@
|
|
|
1020
1027
|
}, delay);
|
|
1021
1028
|
}
|
|
1022
1029
|
|
|
1023
|
-
// Initialisation différée supplémentaire pour les cas difficiles
|
|
1030
|
+
// Initialisation différée supplémentaire pour les cas difficiles - Option 1: Attendre que tout soit vraiment prêt
|
|
1024
1031
|
window.addEventListener('load', function() {
|
|
1025
|
-
const loadDelay = document.body.hasAttribute('bb-performance-boost') ?
|
|
1032
|
+
const loadDelay = document.body.hasAttribute('bb-performance-boost') ? 3000 : 1500; // Délais plus longs
|
|
1026
1033
|
setTimeout(function() {
|
|
1027
1034
|
// Vérifier s'il y a des éléments non initialisés
|
|
1028
1035
|
const unprocessedMarquees = document.querySelectorAll('[bb-marquee]:not([data-bb-marquee-processed])');
|
|
@@ -1030,6 +1037,16 @@
|
|
|
1030
1037
|
bbContents.utils.log('Éléments marquee non initialisés détectés après load, réinitialisation...');
|
|
1031
1038
|
bbContents.reinit();
|
|
1032
1039
|
}
|
|
1040
|
+
|
|
1041
|
+
// Vérification supplémentaire des images chargées
|
|
1042
|
+
const allImages = document.querySelectorAll('img');
|
|
1043
|
+
const unloadedImages = Array.from(allImages).filter(img => !img.complete || img.naturalHeight === 0);
|
|
1044
|
+
if (unloadedImages.length > 0) {
|
|
1045
|
+
bbContents.utils.log('Images non chargées détectées:', unloadedImages.length, '- attente supplémentaire...');
|
|
1046
|
+
setTimeout(() => {
|
|
1047
|
+
bbContents.reinit();
|
|
1048
|
+
}, 1000);
|
|
1049
|
+
}
|
|
1033
1050
|
}, loadDelay);
|
|
1034
1051
|
});
|
|
1035
1052
|
}
|