1- let x = prompt ( 'enter a text: ' )
1+ let x = prompt ( 'Enter a text: ' ) ;
22const name = x ;
33const logo = document . getElementById ( "logo" ) ;
4- const intervals = new Map ( ) ; // Track intervals per character
5-
6- // Create spans for each character
7- name . split ( "" ) . forEach ( ( char , i ) => {
8- const span = document . createElement ( "span" ) ;
9- span . classList . add ( "char" ) ;
10- span . dataset . index = i ;
11- span . dataset . char = char ;
12- span . textContent = char ;
13- logo . appendChild ( span ) ;
4+ const intervals = new Map ( ) ;
5+
6+ // Create spans for each word and its characters
7+ const words = name . split ( " " ) ;
8+ words . forEach ( ( word ) => {
9+ const wordSpan = document . createElement ( "span" ) ;
10+ wordSpan . classList . add ( "word" ) ;
11+
12+ word . split ( "" ) . forEach ( ( char , i ) => {
13+ const span = document . createElement ( "span" ) ;
14+ span . classList . add ( "char" ) ;
15+ span . dataset . index = i ;
16+ span . dataset . char = char ;
17+ span . textContent = char ;
18+ wordSpan . appendChild ( span ) ;
19+ } ) ;
20+
21+ // Add space after each word
22+ const space = document . createElement ( "span" ) ;
23+ space . textContent = " " ;
24+ wordSpan . appendChild ( space ) ;
25+
26+ logo . appendChild ( wordSpan ) ;
1427} ) ;
1528
29+
1630// Random character generator
1731function getRandomChar ( ) {
1832 const pool = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*" ;
@@ -21,17 +35,19 @@ function getRandomChar() {
2135
2236// Start randomizing a character
2337function startRandomizing ( char ) {
24- if ( intervals . has ( char ) ) return ; // Already running
38+ if ( char . dataset . char === " " ) return ; // Skip spaces
39+ if ( intervals . has ( char ) ) return ;
2540
2641 const interval = setInterval ( ( ) => {
2742 char . textContent = getRandomChar ( ) ;
28- } , 50 ) ; // Adjust speed here
43+ } , 50 ) ;
2944
3045 intervals . set ( char , interval ) ;
3146}
3247
3348// Stop randomizing and show actual letter
3449function stopRandomizing ( char ) {
50+ if ( char . dataset . char === " " ) return ; // Skip spaces
3551 if ( intervals . has ( char ) ) {
3652 clearInterval ( intervals . get ( char ) ) ;
3753 intervals . delete ( char ) ;
0 commit comments