Files
ejc2026/src/app/header/header.ts
T

42 lines
836 B
TypeScript

import { Component, ElementRef, HostListener, ViewChild } from '@angular/core';
@Component({
selector: 'app-header',
imports: [],
templateUrl: './header.html',
styleUrl: './header.css',
})
export class Header {
isMenuOpen = false;
@ViewChild('menuContainer')
menuContainer!: ElementRef;
toggleMenu(): void {
this.isMenuOpen = !this.isMenuOpen;
}
closeMenu(): void {
this.isMenuOpen = false;
}
scrollTo(id: string): void {
document.getElementById(id)?.scrollIntoView({ behavior: 'smooth' });
}
@HostListener('document:click', ['$event'])
onDocumentClick(event: MouseEvent): void {
if (!this.isMenuOpen) {
return;
}
const clickedInside = this.menuContainer.nativeElement.contains(
event.target,
);
if (!clickedInside) {
this.closeMenu();
}
}
}