@bebranded/bb-contents 1.0.138 → 1.0.139
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 +21 -11
- 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.139
|
|
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.139');
|
|
36
36
|
|
|
37
37
|
// Configuration
|
|
38
38
|
const config = {
|
|
39
|
-
version: '1.0.
|
|
39
|
+
version: '1.0.139',
|
|
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)
|
|
@@ -394,9 +394,10 @@
|
|
|
394
394
|
const repeatBlock1 = mainBlock.cloneNode(true);
|
|
395
395
|
const repeatBlock2 = mainBlock.cloneNode(true);
|
|
396
396
|
|
|
397
|
-
// Pour les marquees horizontaux, calculer la hauteur avant de mettre en absolute
|
|
397
|
+
// Pour les marquees horizontaux, calculer la hauteur ET la largeur avant de mettre en absolute
|
|
398
|
+
let preCalculatedContentSize = null;
|
|
398
399
|
if (!isVertical) {
|
|
399
|
-
// Temporairement mettre scrollContainer en relative pour calculer
|
|
400
|
+
// Temporairement mettre scrollContainer en relative pour calculer les dimensions
|
|
400
401
|
scrollContainer.style.position = 'relative';
|
|
401
402
|
scrollContainer.appendChild(mainBlock);
|
|
402
403
|
scrollContainer.appendChild(repeatBlock1);
|
|
@@ -426,6 +427,10 @@
|
|
|
426
427
|
mainContainer.style.height = maxHeight + 'px';
|
|
427
428
|
}
|
|
428
429
|
|
|
430
|
+
// IMPORTANT: Calculer contentSize AVANT de mettre en absolute
|
|
431
|
+
// Car une fois en absolute, offsetWidth peut être 0
|
|
432
|
+
preCalculatedContentSize = mainBlock.offsetWidth;
|
|
433
|
+
|
|
429
434
|
// Maintenant mettre scrollContainer en absolute
|
|
430
435
|
scrollContainer.style.position = 'absolute';
|
|
431
436
|
scrollContainer.style.height = '100%';
|
|
@@ -447,18 +452,23 @@
|
|
|
447
452
|
const initDelay = isVertical ? 500 : 300;
|
|
448
453
|
setTimeout(() => {
|
|
449
454
|
this.initAnimation(element, scrollContainer, mainBlock, {
|
|
450
|
-
speed, direction, pauseOnHover, gap, isVertical, useAutoHeight
|
|
455
|
+
speed, direction, pauseOnHover, gap, isVertical, useAutoHeight, preCalculatedContentSize
|
|
451
456
|
});
|
|
452
457
|
}, initDelay);
|
|
453
458
|
});
|
|
454
459
|
},
|
|
455
460
|
|
|
456
461
|
initAnimation: function(element, scrollContainer, mainBlock, options) {
|
|
457
|
-
const { speed, direction, pauseOnHover, gap, isVertical, useAutoHeight } = options;
|
|
462
|
+
const { speed, direction, pauseOnHover, gap, isVertical, useAutoHeight, preCalculatedContentSize } = options;
|
|
458
463
|
|
|
459
464
|
// Calculer les dimensions
|
|
460
|
-
|
|
461
|
-
|
|
465
|
+
// Pour horizontal, utiliser la valeur pré-calculée si disponible (calculée avant position absolute)
|
|
466
|
+
let contentSize;
|
|
467
|
+
if (!isVertical && preCalculatedContentSize && preCalculatedContentSize > 0) {
|
|
468
|
+
contentSize = preCalculatedContentSize;
|
|
469
|
+
} else {
|
|
470
|
+
contentSize = isVertical ? mainBlock.offsetHeight : mainBlock.offsetWidth;
|
|
471
|
+
}
|
|
462
472
|
|
|
463
473
|
if (contentSize === 0) {
|
|
464
474
|
setTimeout(() => this.initAnimation(element, scrollContainer, mainBlock, options), 200);
|
|
@@ -480,8 +490,8 @@
|
|
|
480
490
|
} else {
|
|
481
491
|
// Solution standard : créer les copies seulement si elles n'existent pas déjà
|
|
482
492
|
// (elles ont peut-être été créées pour le calcul de hauteur en horizontal)
|
|
483
|
-
|
|
484
|
-
const hasCopies =
|
|
493
|
+
// Utiliser children.length au lieu de querySelectorAll pour compter uniquement les enfants directs
|
|
494
|
+
const hasCopies = scrollContainer.children.length >= 3; // mainBlock + 2 copies
|
|
485
495
|
|
|
486
496
|
if (!hasCopies) {
|
|
487
497
|
// Créer les copies maintenant (les navigateurs non-Safari gèrent mieux)
|