Skip to content

Commit 8589223

Browse files
authored
Update default.html
1 parent 85b2e58 commit 8589223

1 file changed

Lines changed: 22 additions & 12 deletions

File tree

‎_layouts/default.html‎

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,16 @@
122122
height: 3px;
123123
background: var(--accent-blue);
124124
border-radius: 3px;
125-
transition: width 0.25s cubic-bezier(0.4, 0, 0.2, 1), transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
126125
z-index: 1;
127126
box-shadow: 0 0 10px rgba(0, 210, 255, 0.5);
128127
pointer-events: none;
129128
opacity: 0;
129+
/* Animacja wyłączona domyślnie, włączana dynamicznie po załadowaniu */
130+
transition: none;
131+
}
132+
133+
.nav-indicator.animated {
134+
transition: width 0.25s cubic-bezier(0.4, 0, 0.2, 1), transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
130135
}
131136

132137
/* DROPDOWN APPS */
@@ -348,10 +353,11 @@
348353
<a href="/" class="nav-link-btn {% if page.url == '/' %}active-page{% endif %}">Hub</a>
349354
<a href="/newsy" class="nav-link-btn {% if page.url contains 'newsy' %}active-page{% endif %}">Newsy</a>
350355
<a href="/blog" class="nav-link-btn {% if page.url contains 'blog' %}active-page{% endif %}">Blog</a>
351-
<a href="/homelab" class="nav-link-btn {% if page.url contains 'homelab' %}active-page{% endif %}">HomeLab</a>
356+
<a href="/homelab" class="nav-link-btn {% if page.url == '/homelab' or page.url == '/homelab/' %}active-page{% endif %}">HomeLab</a>
352357
<a href="/sponsors" class="nav-link-btn {% if page.url contains 'sponsors' %}active-page{% endif %}">Sponsors</a>
353358

354359
<div class="dropdown" id="dropdownApps">
360+
<!-- Wyraźny warunek dla całej grupy aplikacji w sekcji Apps -->
355361
<a href="#" class="nav-link-btn dropbtn {% if page.url contains 'orbit' or page.url contains 'homelab-cc' or page.url contains 'phone' or page.url contains 'apps' %}active-page{% endif %}" onclick="return false;">Apps ▾</a>
356362
<div class="dropdown-content">
357363
<div class="dropdown-links-wrapper">
@@ -464,42 +470,46 @@ <h4>Follow DevLabStudy</h4>
464470
const indicator = document.getElementById('navIndicator');
465471
const activeLink = navCenter.querySelector('.nav-link-btn.active-page') || navCenter.querySelector('.nav-link-btn');
466472

467-
function positionIndicator(targetEl) {
473+
function positionIndicator(targetEl, enableAnimation = true) {
468474
if (!targetEl) return;
475+
469476
const parentRect = navCenter.getBoundingClientRect();
470477
const targetRect = targetEl.getBoundingClientRect();
471-
472478
const leftOffset = targetRect.left - parentRect.left;
473479
const targetWidth = targetRect.width;
474480

481+
if (enableAnimation) {
482+
indicator.classList.add('animated');
483+
} else {
484+
indicator.classList.remove('animated');
485+
}
486+
475487
indicator.style.width = `${targetWidth}px`;
476488
indicator.style.transform = `translateX(${leftOffset}px)`;
477489
indicator.style.opacity = '1';
478490
}
479491

480-
// Ustaw pozycję po pełnym wyrenderowaniu i załadowaniu fontów
492+
// Ustaw pozycję natychmiastowo bez animacji startowej po wyrenderowaniu
481493
document.fonts.ready.then(() => {
482-
positionIndicator(activeLink);
494+
positionIndicator(activeLink, false);
483495
});
484496

485-
// Obsługa najechania na każdy przycisk na pasku
497+
// Reagowanie na ruch myszki
486498
const mainNavBtns = navCenter.querySelectorAll(':scope > .nav-link-btn, :scope > .dropdown');
487499
mainNavBtns.forEach(item => {
488500
const buttonToHighlight = item.classList.contains('dropdown') ? item.querySelector('.dropbtn') : item;
489501

490502
item.addEventListener('mouseenter', () => {
491-
positionIndicator(buttonToHighlight);
503+
positionIndicator(buttonToHighlight, true);
492504
});
493505
});
494506

495-
// Opuszczenie paska nawigacji -> powrót na aktywny przycisk
496507
navCenter.addEventListener('mouseleave', () => {
497-
positionIndicator(activeLink);
508+
positionIndicator(activeLink, true);
498509
});
499510

500-
// Odświeżenie pozycji przy zmianie rozmiaru okna
501511
window.addEventListener('resize', () => {
502-
positionIndicator(activeLink);
512+
positionIndicator(activeLink, false);
503513
});
504514
});
505515
</script>

0 commit comments

Comments
 (0)