ctt-puro 0.45.7 → 0.45.8
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.
|
@@ -18,7 +18,6 @@ export class PuroNavStickyDirective {
|
|
|
18
18
|
return;
|
|
19
19
|
this.banner = document.querySelector('.banner');
|
|
20
20
|
this.isInitialized = true;
|
|
21
|
-
// Recalcular al finalizar cada navegación
|
|
22
21
|
this.sub = this.router.events
|
|
23
22
|
.pipe(filter((e) => e instanceof NavigationEnd))
|
|
24
23
|
.subscribe(() => this.updateStickyState());
|
|
@@ -38,7 +37,7 @@ export class PuroNavStickyDirective {
|
|
|
38
37
|
isMobile() {
|
|
39
38
|
if (!isPlatformBrowser(this.platformId))
|
|
40
39
|
return false;
|
|
41
|
-
return window.matchMedia('(max-width: 1280px)').matches;
|
|
40
|
+
return window.matchMedia('(max-width: 1280px)').matches;
|
|
42
41
|
}
|
|
43
42
|
updateStickyState() {
|
|
44
43
|
if (!isPlatformBrowser(this.platformId) || !this.isInitialized)
|
|
@@ -47,34 +46,52 @@ export class PuroNavStickyDirective {
|
|
|
47
46
|
document.documentElement.scrollTop ||
|
|
48
47
|
document.body.scrollTop ||
|
|
49
48
|
0;
|
|
49
|
+
const header = document.querySelector('header.header');
|
|
50
|
+
/**
|
|
51
|
+
* 🔵 DETECCIÓN NUEVA:
|
|
52
|
+
* Header tocando el borde superior del viewport
|
|
53
|
+
*/
|
|
54
|
+
if (header && header.getBoundingClientRect().top <= 0) {
|
|
55
|
+
document.body.classList.add('nav-sticky--top');
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
document.body.classList.remove('nav-sticky--top');
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* 🔵 MODO DINÁMICO (HOTELS)
|
|
62
|
+
*/
|
|
50
63
|
if (this.isDynamic) {
|
|
51
|
-
// 🔹 Modo dinámico: en función del scroll
|
|
52
64
|
if (y > this.mobileHeader) {
|
|
53
65
|
document.body.classList.add('nav-sticky', 'mobile-sticky');
|
|
54
66
|
}
|
|
55
67
|
else {
|
|
56
68
|
document.body.classList.remove('nav-sticky', 'mobile-sticky');
|
|
57
69
|
}
|
|
70
|
+
return;
|
|
58
71
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
else {
|
|
67
|
-
document.body.classList.remove('nav-sticky');
|
|
68
|
-
}
|
|
69
|
-
document.body.classList.remove('mobile-sticky');
|
|
72
|
+
/**
|
|
73
|
+
* 🔵 Desktop con banner
|
|
74
|
+
*/
|
|
75
|
+
if (this.banner) {
|
|
76
|
+
const bannerHeight = this.getOuterHeight(this.banner);
|
|
77
|
+
if (y >= bannerHeight) {
|
|
78
|
+
document.body.classList.add('nav-sticky');
|
|
70
79
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
document.body.classList.remove('mobile-sticky');
|
|
74
|
-
// 🔹 Mobile sin banner: siempre mobile-sticky
|
|
75
|
-
if (this.isMobile()) {
|
|
76
|
-
document.body.classList.add('nav-sticky', 'mobile-sticky');
|
|
80
|
+
else {
|
|
81
|
+
document.body.classList.remove('nav-sticky');
|
|
77
82
|
}
|
|
83
|
+
document.body.classList.remove('mobile-sticky');
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 🔵 Desktop sin banner
|
|
87
|
+
*/
|
|
88
|
+
document.body.classList.add('nav-sticky');
|
|
89
|
+
document.body.classList.remove('mobile-sticky');
|
|
90
|
+
/**
|
|
91
|
+
* 🔵 Mobile sin banner
|
|
92
|
+
*/
|
|
93
|
+
if (this.isMobile()) {
|
|
94
|
+
document.body.classList.add('nav-sticky', 'mobile-sticky');
|
|
78
95
|
}
|
|
79
96
|
}
|
|
80
97
|
getOuterHeight(element) {
|
|
@@ -103,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
103
120
|
type: HostListener,
|
|
104
121
|
args: ['window:resize']
|
|
105
122
|
}] } });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1uYXYtc3RpY2t5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3B1cm8vc3JjL2xpYi9kaXJlY3RpdmVzL3B1cm8tbmF2LXN0aWNreS9wdXJvLW5hdi1zdGlja3kuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsV0FBVyxHQUVkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7O0FBTTVDLE1BQU0sT0FBTyxzQkFBc0I7SUFRL0IsWUFDaUMsVUFBa0IsRUFDdkMsTUFBYztRQURPLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVRqQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTVCLFdBQU0sR0FBdUIsSUFBSSxDQUFDO1FBQ2xDLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBTTNCLENBQUM7SUFFSixlQUFlO1FBQ1gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPO1FBRWhELElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUUxQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFzQixFQUFFLENBQUMs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QVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1NBQzlEO0lBQ0wsQ0FBQztJQUVPLGNBQWMsQ0FBQyxPQUFvQjtRQUN2QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxPQUFPLENBQ0gsTUFBTSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FDcEUsQ0FBQztJQUNOLENBQUM7K0dBbEhRLHNCQUFzQixrQkFTbkIsV0FBVzttR0FUZCxzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBVVEsTUFBTTsyQkFBQyxXQUFXOzhEQVJkLFNBQVM7c0JBQWpCLEtBQUs7Z0JBZ0NOLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlO2dCQU03QixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBEaXJlY3RpdmUsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgUExBVEZPUk1fSUQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIsIE5hdmlnYXRpb25FbmQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbmF2U3RpY2t5XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgUHVyb05hdlN0aWNreURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgaXNEeW5hbWljOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGJhbm5lcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIG1vYmlsZUhlYWRlciA9IDE7XG4gICAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBzdWI/OiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QsXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgICApIHt9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuYmFubmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmJhbm5lcicpO1xuICAgICAgICB0aGlzLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuc3ViID0gdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAgICAgICAucGlwZShmaWx0ZXIoKGUpOiBlIGlzIE5hdmlnYXRpb25FbmQgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVwZGF0ZVN0aWNreVN0YXRlKCkpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlU3RpY2t5U3RhdGUoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWQgJiYgJ2lzRHluYW1pYycgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTdGlja3lTdGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcpXG4gICAgb25XaW5kb3dTY3JvbGwoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlU3RpY2t5U3RhdGUoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgICBvblJlc2l6ZSgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVTdGlja3lTdGF0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICByZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEoJyhtYXgtd2lkdGg6IDEyODBweCknKS5tYXRjaGVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU3RpY2t5U3RhdGUoKSB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSB8fCAhdGhpcy5pc0luaXRpYWxpemVkKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgeSA9XG4gICAgICAgICAgICB3aW5kb3cucGFnZVlPZmZzZXQgfHxcbiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHxcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIHx8XG4gICAgICAgICAgICAwO1xuXG4gICAgICAgIGNvbnN0IGhlYWRlcjogSFRNTEVsZW1lbnQgfCBudWxsID1cbiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWRlci5oZWFkZXInKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog8J+UtSBERVRFQ0NJw5NOIE5VRVZBOlxuICAgICAgICAgKiBIZWFkZXIgdG9jYW5kbyBlbCBib3JkZSBzdXBlcmlvciBkZWwgdmlld3BvcnRcbiAgICAgICAgICovXG4gICAgICAgIGlmIChoZWFkZXIgJiYgaGVhZGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCA8PSAwKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ25hdi1zdGlja3ktLXRvcCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCduYXYtc3RpY2t5LS10b3AnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDwn5S1IE1PRE8gRElOw4FNSUNPIChIT1RFTFMpXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5pc0R5bmFtaWMpIHtcbiAgICAgICAgICAgIGlmICh5ID4gdGhpcy5tb2JpbGVIZWFkZXIpIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ25hdi1zdGlja3knLCAnbW9iaWxlLXN0aWNreScpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ25hdi1zdGlja3knLCAnbW9iaWxlLXN0aWNreScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIPCflLUgRGVza3RvcCBjb24gYmFubmVyXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5iYW5uZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGJhbm5lckhlaWdodCA9IHRoaXMuZ2V0T3V0ZXJIZWlnaHQodGhpcy5iYW5uZXIpO1xuICAgICAgICAgICAgaWYgKHkgPj0gYmFubmVySGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCduYXYtc3RpY2t5Jyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnbmF2LXN0aWNreScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdtb2JpbGUtc3RpY2t5Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICog8J+UtSBEZXNrdG9wIHNpbiBiYW5uZXJcbiAgICAgICAgICovXG4gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnbmF2LXN0aWNreScpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ21vYmlsZS1zdGlja3knKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog8J+UtSBNb2JpbGUgc2luIGJhbm5lclxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGUoKSkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCduYXYtc3RpY2t5JywgJ21vYmlsZS1zdGlja3knKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0T3V0ZXJIZWlnaHQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBoZWlnaHQgPSBlbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGhlaWdodCArIHBhcnNlSW50KHN0eWxlLm1hcmdpblRvcCkgKyBwYXJzZUludChzdHlsZS5tYXJnaW5Cb3R0b20pXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
|
package/fesm2022/ctt-puro.mjs
CHANGED
|
@@ -1192,7 +1192,6 @@ class PuroNavStickyDirective {
|
|
|
1192
1192
|
return;
|
|
1193
1193
|
this.banner = document.querySelector('.banner');
|
|
1194
1194
|
this.isInitialized = true;
|
|
1195
|
-
// Recalcular al finalizar cada navegación
|
|
1196
1195
|
this.sub = this.router.events
|
|
1197
1196
|
.pipe(filter((e) => e instanceof NavigationEnd))
|
|
1198
1197
|
.subscribe(() => this.updateStickyState());
|
|
@@ -1212,7 +1211,7 @@ class PuroNavStickyDirective {
|
|
|
1212
1211
|
isMobile() {
|
|
1213
1212
|
if (!isPlatformBrowser(this.platformId))
|
|
1214
1213
|
return false;
|
|
1215
|
-
return window.matchMedia('(max-width: 1280px)').matches;
|
|
1214
|
+
return window.matchMedia('(max-width: 1280px)').matches;
|
|
1216
1215
|
}
|
|
1217
1216
|
updateStickyState() {
|
|
1218
1217
|
if (!isPlatformBrowser(this.platformId) || !this.isInitialized)
|
|
@@ -1221,34 +1220,52 @@ class PuroNavStickyDirective {
|
|
|
1221
1220
|
document.documentElement.scrollTop ||
|
|
1222
1221
|
document.body.scrollTop ||
|
|
1223
1222
|
0;
|
|
1223
|
+
const header = document.querySelector('header.header');
|
|
1224
|
+
/**
|
|
1225
|
+
* 🔵 DETECCIÓN NUEVA:
|
|
1226
|
+
* Header tocando el borde superior del viewport
|
|
1227
|
+
*/
|
|
1228
|
+
if (header && header.getBoundingClientRect().top <= 0) {
|
|
1229
|
+
document.body.classList.add('nav-sticky--top');
|
|
1230
|
+
}
|
|
1231
|
+
else {
|
|
1232
|
+
document.body.classList.remove('nav-sticky--top');
|
|
1233
|
+
}
|
|
1234
|
+
/**
|
|
1235
|
+
* 🔵 MODO DINÁMICO (HOTELS)
|
|
1236
|
+
*/
|
|
1224
1237
|
if (this.isDynamic) {
|
|
1225
|
-
// 🔹 Modo dinámico: en función del scroll
|
|
1226
1238
|
if (y > this.mobileHeader) {
|
|
1227
1239
|
document.body.classList.add('nav-sticky', 'mobile-sticky');
|
|
1228
1240
|
}
|
|
1229
1241
|
else {
|
|
1230
1242
|
document.body.classList.remove('nav-sticky', 'mobile-sticky');
|
|
1231
1243
|
}
|
|
1244
|
+
return;
|
|
1232
1245
|
}
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
else {
|
|
1241
|
-
document.body.classList.remove('nav-sticky');
|
|
1242
|
-
}
|
|
1243
|
-
document.body.classList.remove('mobile-sticky');
|
|
1246
|
+
/**
|
|
1247
|
+
* 🔵 Desktop con banner
|
|
1248
|
+
*/
|
|
1249
|
+
if (this.banner) {
|
|
1250
|
+
const bannerHeight = this.getOuterHeight(this.banner);
|
|
1251
|
+
if (y >= bannerHeight) {
|
|
1252
|
+
document.body.classList.add('nav-sticky');
|
|
1244
1253
|
}
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
document.body.classList.remove('mobile-sticky');
|
|
1248
|
-
// 🔹 Mobile sin banner: siempre mobile-sticky
|
|
1249
|
-
if (this.isMobile()) {
|
|
1250
|
-
document.body.classList.add('nav-sticky', 'mobile-sticky');
|
|
1254
|
+
else {
|
|
1255
|
+
document.body.classList.remove('nav-sticky');
|
|
1251
1256
|
}
|
|
1257
|
+
document.body.classList.remove('mobile-sticky');
|
|
1258
|
+
}
|
|
1259
|
+
/**
|
|
1260
|
+
* 🔵 Desktop sin banner
|
|
1261
|
+
*/
|
|
1262
|
+
document.body.classList.add('nav-sticky');
|
|
1263
|
+
document.body.classList.remove('mobile-sticky');
|
|
1264
|
+
/**
|
|
1265
|
+
* 🔵 Mobile sin banner
|
|
1266
|
+
*/
|
|
1267
|
+
if (this.isMobile()) {
|
|
1268
|
+
document.body.classList.add('nav-sticky', 'mobile-sticky');
|
|
1252
1269
|
}
|
|
1253
1270
|
}
|
|
1254
1271
|
getOuterHeight(element) {
|