@@ -62,13 +62,47 @@ document.addEventListener('DOMContentLoaded', function() {
6262 observer . observe ( section ) ;
6363 } ) ;
6464
65- // Mobile menu toggle (if needed in future)
65+ // Mobile menu toggle
6666 const navToggle = document . querySelector ( '.nav-toggle' ) ;
6767 const navLinks = document . querySelector ( '.nav-links' ) ;
6868
69- if ( navToggle ) {
69+ if ( navToggle && navLinks ) {
7070 navToggle . addEventListener ( 'click' , function ( ) {
7171 navLinks . classList . toggle ( 'active' ) ;
72+ const icon = navToggle . querySelector ( 'i' ) ;
73+ if ( icon ) {
74+ icon . classList . toggle ( 'fa-bars' ) ;
75+ icon . classList . toggle ( 'fa-times' ) ;
76+ }
77+ } ) ;
78+
79+ // Close menu when clicking on a link
80+ navLinks . querySelectorAll ( 'a' ) . forEach ( link => {
81+ link . addEventListener ( 'click' , function ( ) {
82+ if ( window . innerWidth <= 768 ) {
83+ navLinks . classList . remove ( 'active' ) ;
84+ const icon = navToggle . querySelector ( 'i' ) ;
85+ if ( icon ) {
86+ icon . classList . add ( 'fa-bars' ) ;
87+ icon . classList . remove ( 'fa-times' ) ;
88+ }
89+ }
90+ } ) ;
91+ } ) ;
92+
93+ // Close menu when clicking outside
94+ document . addEventListener ( 'click' , function ( event ) {
95+ if ( window . innerWidth <= 768 ) {
96+ const isClickInsideNav = navToggle . contains ( event . target ) || navLinks . contains ( event . target ) ;
97+ if ( ! isClickInsideNav && navLinks . classList . contains ( 'active' ) ) {
98+ navLinks . classList . remove ( 'active' ) ;
99+ const icon = navToggle . querySelector ( 'i' ) ;
100+ if ( icon ) {
101+ icon . classList . add ( 'fa-bars' ) ;
102+ icon . classList . remove ( 'fa-times' ) ;
103+ }
104+ }
105+ }
72106 } ) ;
73107 }
74108
0 commit comments