@@ -2,19 +2,43 @@ function loadingImg(phase) {
22 const img = document . querySelector ( '.logo-img' ) ;
33 if ( ! img ) return ;
44
5- // Clamp phase between 0 and 100
65 phase = Math . max ( 0 , Math . min ( phase , 100 ) ) ;
7-
8- // Convert phase to degrees
96 const degrees = ( phase / 100 ) * 360 ;
107
11- // White = fully visible, semi-transparent = 50% opacity
12- img . style . webkitMaskImage = `conic-gradient(rgba(255,255,255,1) 0deg ${ degrees } deg, rgba(255,255,255,0.5) ${ degrees } deg 360deg)` ;
13- img . style . maskImage = `conic-gradient(rgba(255,255,255,1) 0deg ${ degrees } deg, rgba(255,255,255,0.5) ${ degrees } deg 360deg)` ;
8+ img . style . webkitMaskImage = `conic-gradient(rgba(255,255,255,1) 0deg ${ degrees } deg, rgba(255,255,255,0.7) ${ degrees } deg 360deg)` ;
9+ img . style . maskImage = `conic-gradient(rgba(255,255,255,1) 0deg ${ degrees } deg, rgba(255,255,255,0.7) ${ degrees } deg 360deg)` ;
1410 img . style . webkitMaskRepeat = 'no-repeat' ;
1511 img . style . maskRepeat = 'no-repeat' ;
1612 img . style . webkitMaskPosition = 'center' ;
1713 img . style . maskPosition = 'center' ;
1814 img . style . webkitMaskSize = 'contain' ;
1915 img . style . maskSize = 'contain' ;
2016}
17+
18+ let pulseInterval = null ;
19+ function pulse ( state ) {
20+ const img = document . querySelector ( '.logo-img' ) ;
21+ if ( ! img ) return ;
22+
23+ if ( state === 'reset' ) {
24+ clearInterval ( pulseInterval ) ;
25+ pulseInterval = null ;
26+ img . style . transition = 'transform 0.2s ease' ;
27+ img . style . transform = 'scale(0.8)' ;
28+ } else if ( state === true ) {
29+ if ( pulseInterval ) return ; // already pulsing
30+ let growing = true ;
31+ img . style . transition = 'transform 0.2s ease' ;
32+ pulseInterval = setInterval ( ( ) => {
33+ img . style . transform = growing ? 'scale(1)' : 'scale(0.8)' ;
34+ growing = ! growing ;
35+ } , 200 ) ;
36+ } else if ( state === false ) {
37+ if ( pulseInterval ) {
38+ clearInterval ( pulseInterval ) ;
39+ pulseInterval = null ;
40+ }
41+ img . style . transition = 'transform 0.2s ease' ;
42+ img . style . transform = 'scale(1)' ;
43+ }
44+ }
0 commit comments