fix(Header): Remove duplicate variable declarations and event listeners
This commit is contained in:
parent
23ea734d66
commit
b340d3fe78
|
@ -379,13 +379,13 @@ const navItems = [
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
// Only define one DOMContentLoaded event handler
|
||||||
// Handle mobile menu toggle
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
const menuBtn = document.getElementById('mobile-menu-btn');
|
const menuBtn = document.getElementById('mobile-menu-btn');
|
||||||
const mainNav = document.querySelector('.main-nav');
|
const mainNav = document.querySelector('.main-nav');
|
||||||
const header = document.querySelector('.site-header');
|
const header = document.querySelector('.site-header');
|
||||||
|
|
||||||
|
// Mobile menu toggle
|
||||||
if (menuBtn && mainNav) {
|
if (menuBtn && mainNav) {
|
||||||
menuBtn.addEventListener('click', () => {
|
menuBtn.addEventListener('click', () => {
|
||||||
mainNav.classList.toggle('active');
|
mainNav.classList.toggle('active');
|
||||||
|
@ -402,70 +402,7 @@ const navItems = [
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Theme toggle functionality
|
// Theme toggle functionality - only define once
|
||||||
const themeToggle = document.getElementById('theme-toggle');
|
|
||||||
|
|
||||||
if (themeToggle) {
|
|
||||||
themeToggle.addEventListener('click', () => {
|
|
||||||
document.documentElement.classList.toggle('light-mode');
|
|
||||||
|
|
||||||
// Store preference in localStorage
|
|
||||||
const isLightMode = document.documentElement.classList.contains('light-mode');
|
|
||||||
localStorage.setItem('theme', isLightMode ? 'light' : 'dark');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add interactive network nodes animation
|
|
||||||
const header_el = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
if (header_el) {
|
|
||||||
// Create animated nodes
|
|
||||||
for (let i = 0; i < 5; i++) {
|
|
||||||
const node = document.createElement('div');
|
|
||||||
node.className = 'nav-node';
|
|
||||||
node.style.left = `${Math.random() * 100}%`;
|
|
||||||
node.style.animationDelay = `${Math.random() * 5}s`;
|
|
||||||
node.style.animationDuration = `${5 + Math.random() * 5}s`;
|
|
||||||
header_el.appendChild(node);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Theme toggle functionality
|
|
||||||
const themeToggle = document.getElementById('theme-toggle');
|
|
||||||
|
|
||||||
if (themeToggle) {
|
|
||||||
themeToggle.addEventListener('click', () => {
|
|
||||||
document.documentElement.classList.toggle('light-mode');
|
|
||||||
|
|
||||||
// Store preference in localStorage
|
|
||||||
const isLightMode = document.documentElement.classList.contains('light-mode');
|
|
||||||
localStorage.setItem('theme', isLightMode ? 'light' : 'dark');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle mobile menu toggle
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
|
||||||
const menuBtn = document.getElementById('mobile-menu-btn');
|
|
||||||
const mainNav = document.querySelector('.main-nav');
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
if (menuBtn && mainNav) {
|
|
||||||
menuBtn.addEventListener('click', () => {
|
|
||||||
mainNav.classList.toggle('active');
|
|
||||||
menuBtn.classList.toggle('mobile-menu-active');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Header scroll effect
|
|
||||||
window.addEventListener('scroll', () => {
|
|
||||||
if (window.scrollY > 50) {
|
|
||||||
header.classList.add('scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Theme toggle functionality
|
|
||||||
const themeToggle = document.getElementById('theme-toggle');
|
const themeToggle = document.getElementById('theme-toggle');
|
||||||
|
|
||||||
if (themeToggle) {
|
if (themeToggle) {
|
||||||
|
|
Loading…
Reference in New Issue