Улучшил мобильное меню и модальное окно

This commit is contained in:
Honfred
2026-02-06 06:51:35 +03:00
parent 56e4c1239b
commit cf41bf0642
3 changed files with 37 additions and 27 deletions

View File

@@ -317,19 +317,27 @@ a:hover {
.mobile-menu-toggle { .mobile-menu-toggle {
display: none; display: none;
flex-direction: column;
background: none; background: none;
border: none; border: none;
cursor: pointer; cursor: pointer;
padding: 5px; padding: 8px;
gap: 4px; font-size: 1.5rem;
color: var(--text-dark);
transition: var(--transition);
line-height: 1;
}
.mobile-menu-toggle i {
transition: var(--transition);
display: inline-block;
}
.mobile-menu-toggle.active i {
transform: rotate(90deg);
} }
.mobile-menu-toggle span { .mobile-menu-toggle span {
width: 25px; display: none;
height: 3px;
background-color: var(--text-dark);
transition: var(--transition);
} }
/* Hero Section */ /* Hero Section */
@@ -658,7 +666,9 @@ a:hover {
font-size: 1.5rem; font-size: 1.5rem;
color: var(--text-light); color: var(--text-light);
cursor: pointer; cursor: pointer;
padding: 0.5rem; width: 40px;
height: 40px;
padding: 0;
border-radius: 50%; border-radius: 50%;
transition: var(--transition); transition: var(--transition);
flex-shrink: 0; flex-shrink: 0;
@@ -666,6 +676,9 @@ a:hover {
top: 1rem; top: 1rem;
right: 1rem; right: 1rem;
z-index: 10; z-index: 10;
display: flex;
align-items: center;
justify-content: center;
} }
.modal-close:hover { .modal-close:hover {

View File

@@ -52,17 +52,16 @@ function initMobileMenu() {
if (mobileMenuToggle && navbarMenu) { if (mobileMenuToggle && navbarMenu) {
mobileMenuToggle.addEventListener('click', function() { mobileMenuToggle.addEventListener('click', function() {
navbarMenu.classList.toggle('active'); navbarMenu.classList.toggle('active');
mobileMenuToggle.classList.toggle('active');
// Animate hamburger menu // Toggle hamburger/close icon
const spans = mobileMenuToggle.querySelectorAll('span'); const icon = mobileMenuToggle.querySelector('i');
if (navbarMenu.classList.contains('active')) { if (navbarMenu.classList.contains('active')) {
spans[0].style.transform = 'rotate(45deg) translateY(7px)'; icon.classList.remove('fa-bars');
spans[1].style.opacity = '0'; icon.classList.add('fa-times');
spans[2].style.transform = 'rotate(-45deg) translateY(-7px)';
} else { } else {
spans[0].style.transform = 'none'; icon.classList.remove('fa-times');
spans[1].style.opacity = '1'; icon.classList.add('fa-bars');
spans[2].style.transform = 'none';
} }
}); });
@@ -70,10 +69,10 @@ function initMobileMenu() {
navLinks.forEach(link => { navLinks.forEach(link => {
link.addEventListener('click', () => { link.addEventListener('click', () => {
navbarMenu.classList.remove('active'); navbarMenu.classList.remove('active');
const spans = mobileMenuToggle.querySelectorAll('span'); mobileMenuToggle.classList.remove('active');
spans[0].style.transform = 'none'; const icon = mobileMenuToggle.querySelector('i');
spans[1].style.opacity = '1'; icon.classList.remove('fa-times');
spans[2].style.transform = 'none'; icon.classList.add('fa-bars');
}); });
}); });
@@ -81,10 +80,10 @@ function initMobileMenu() {
document.addEventListener('click', function(e) { document.addEventListener('click', function(e) {
if (!navbarMenu.contains(e.target) && !mobileMenuToggle.contains(e.target)) { if (!navbarMenu.contains(e.target) && !mobileMenuToggle.contains(e.target)) {
navbarMenu.classList.remove('active'); navbarMenu.classList.remove('active');
const spans = mobileMenuToggle.querySelectorAll('span'); mobileMenuToggle.classList.remove('active');
spans[0].style.transform = 'none'; const icon = mobileMenuToggle.querySelector('i');
spans[1].style.opacity = '1'; icon.classList.remove('fa-times');
spans[2].style.transform = 'none'; icon.classList.add('fa-bars');
} }
}); });
} }

View File

@@ -98,9 +98,7 @@
</div> </div>
<button class="mobile-menu-toggle" id="mobile-menu-toggle"> <button class="mobile-menu-toggle" id="mobile-menu-toggle">
<span></span> <i class="fas fa-bars"></i>
<span></span>
<span></span>
</button> </button>
</div> </div>
</nav> </nav>