@bebranded/bb-contents 1.0.114 → 1.0.115
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 +10 -20
- package/package.json +1 -1
package/bb-contents.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* BeBranded Contents
|
|
3
3
|
* Contenus additionnels français pour Webflow
|
|
4
|
-
* @version 1.0.
|
|
4
|
+
* @version 1.0.115
|
|
5
5
|
* @author BeBranded
|
|
6
6
|
* @license MIT
|
|
7
7
|
* @website https://www.bebranded.xyz
|
|
@@ -32,11 +32,11 @@
|
|
|
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.115');
|
|
36
36
|
|
|
37
37
|
// Configuration
|
|
38
38
|
const config = {
|
|
39
|
-
version: '1.0.
|
|
39
|
+
version: '1.0.115',
|
|
40
40
|
debug: false, // Debug désactivé pour rendu propre
|
|
41
41
|
prefix: 'bb-', // utilisé pour générer les sélecteurs (data-bb-*)
|
|
42
42
|
youtubeEndpoint: null, // URL du worker YouTube (à définir par l'utilisateur)
|
|
@@ -390,6 +390,10 @@
|
|
|
390
390
|
let imagesLoaded = 0;
|
|
391
391
|
const totalImages = images.length;
|
|
392
392
|
|
|
393
|
+
// DÉCLARER isMobile et isSafari AVANT leur utilisation dans img.onload
|
|
394
|
+
const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
|
|
395
|
+
// Détecter spécifiquement Safari (pas Chrome mobile)
|
|
396
|
+
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent) || /iPhone|iPad|iPod/.test(navigator.userAgent);
|
|
393
397
|
|
|
394
398
|
// OPTIMISATION: Charger les images et appliquer les styles SVG AVANT le clonage
|
|
395
399
|
// pour éviter les reflows qui causent la saccade de l'animation
|
|
@@ -488,11 +492,6 @@
|
|
|
488
492
|
};
|
|
489
493
|
});
|
|
490
494
|
|
|
491
|
-
// SOLUTION SAFARI MOBILE SIMPLE : Attendre plus longtemps
|
|
492
|
-
const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
|
|
493
|
-
// Détecter spécifiquement Safari (pas Chrome mobile)
|
|
494
|
-
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent) || /iPhone|iPad|iPod/.test(navigator.userAgent);
|
|
495
|
-
|
|
496
495
|
// Timeout plus long sur mobile pour laisser le temps aux images de se charger
|
|
497
496
|
const maxWaitTime = isMobile ? 5000 : 3000; // 5 secondes sur mobile
|
|
498
497
|
let waitTimeout = 0;
|
|
@@ -531,7 +530,9 @@
|
|
|
531
530
|
}
|
|
532
531
|
} else if (waitTimeout >= maxWaitTime) {
|
|
533
532
|
// Timeout atteint : forcer le démarrage mais c'est un fallback
|
|
534
|
-
|
|
533
|
+
if (bbContents.config.debug) {
|
|
534
|
+
console.warn('[MARQUEE] Timeout atteint, certaines images peuvent ne pas être chargées');
|
|
535
|
+
}
|
|
535
536
|
const renderDelay = isSafari && isMobile ? 1500 : (isMobile ? 1000 : 200);
|
|
536
537
|
setTimeout(() => {
|
|
537
538
|
startSafariAnimation();
|
|
@@ -559,14 +560,6 @@
|
|
|
559
560
|
// Cela évite les reflows qui causaient la saccade de l'animation
|
|
560
561
|
// Les copies héritent automatiquement des styles des images originales
|
|
561
562
|
|
|
562
|
-
// Vérifier que les images ont une taille visible
|
|
563
|
-
let imagesWithSize = 0;
|
|
564
|
-
images.forEach(img => {
|
|
565
|
-
if (img.offsetWidth > 0 && img.offsetHeight > 0) {
|
|
566
|
-
imagesWithSize++;
|
|
567
|
-
}
|
|
568
|
-
});
|
|
569
|
-
|
|
570
563
|
// Recalculer la taille après chargement des images
|
|
571
564
|
const newContentSize = isVertical ? mainBlock.offsetHeight : mainBlock.offsetWidth;
|
|
572
565
|
|
|
@@ -623,12 +616,9 @@
|
|
|
623
616
|
}
|
|
624
617
|
|
|
625
618
|
// Fonction d'animation Safari optimisée
|
|
626
|
-
let frameCount = 0;
|
|
627
619
|
let lastTime = performance.now();
|
|
628
620
|
const animate = (currentTime) => {
|
|
629
621
|
if (!isPaused) {
|
|
630
|
-
frameCount++;
|
|
631
|
-
|
|
632
622
|
// OPTIMISATION SAFARI MOBILE : Utiliser le temps réel pour une animation plus fluide
|
|
633
623
|
const deltaTime = isSafari && isMobile ? (currentTime - lastTime) / 16.67 : 1;
|
|
634
624
|
lastTime = currentTime;
|