Fix: www/ movido a raíz, estructura final
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
// Hamburger menu
|
||||
const hamburger = document.getElementById('hamburger');
|
||||
const sidebar = document.getElementById('sidebar');
|
||||
const overlay = document.getElementById('sidebar-overlay');
|
||||
|
||||
hamburger.addEventListener('click', () => {
|
||||
sidebar.classList.toggle('open');
|
||||
overlay.classList.toggle('open');
|
||||
});
|
||||
|
||||
overlay.addEventListener('click', () => {
|
||||
sidebar.classList.remove('open');
|
||||
overlay.classList.remove('open');
|
||||
});
|
||||
|
||||
// Close sidebar on nav click (mobile)
|
||||
sidebar.querySelectorAll('a').forEach(link => {
|
||||
link.addEventListener('click', () => {
|
||||
if (window.innerWidth <= 900) {
|
||||
sidebar.classList.remove('open');
|
||||
overlay.classList.remove('open');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Highlight active section on scroll
|
||||
const sections = document.querySelectorAll('.seccion-titulo');
|
||||
const navLinks = document.querySelectorAll('.sidebar-nav a[data-section]');
|
||||
|
||||
const observer = new IntersectionObserver((entries) => {
|
||||
entries.forEach(entry => {
|
||||
if (entry.isIntersecting) {
|
||||
navLinks.forEach(link => link.classList.remove('active'));
|
||||
const id = entry.target.id;
|
||||
const activeLink = document.querySelector('.sidebar-nav a[data-section="' + id + '"]');
|
||||
if (activeLink) {
|
||||
activeLink.classList.add('active');
|
||||
activeLink.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
|
||||
}
|
||||
}
|
||||
});
|
||||
}, { rootMargin: '-10% 0px -80% 0px' });
|
||||
|
||||
sections.forEach(section => observer.observe(section));
|
||||
Reference in New Issue
Block a user