All Source Code : https://www.patreon.com/onlinetutorials Get now more than 1000+ source code just by clicking on this link …
source
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Text Scroll Animation</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <div class="box"> <h2 class="text">Scroll to See Magic...</h2> </div> <script> let textElement = document.querySelector('.text'); let textContent = textElement.textContent; textElement.innerHTML = ''; let spans = []; for (let char of textContent){ let span = document.createElement('span'); span.textContent = char; textElement.appendChild(span); spans.push(span); } // add scroll event listener window.addEventListener('scroll', () => { let scrollDistance = window.scrollY; spans.forEach((span, index) => { if (scrollDistance >= (index + 1) * 50){ span.style.transform = `translate(${index * 20}px,0)`; span.classList.add('active'); } else { span.style.transform = `translate(${Math.random() * 100 - 50}vw, ${Math.random() * 100 - 50}vh)`; span.classList.remove('active'); } }) }) // Trigger initial random position window.dispatchEvent(new Event('scroll')); </script> </body> </html>
* { margin: 0; padding: 0; box-sizing: border-box; font-family: consolas; } body { display: flex; justify-content: center; align-items: center; min-height: 300vh; background: #333; } .box { position: fixed; top: 50%; transform: translateY(-50%); width: 440px; padding: 0 0 25px; } .box span { position: absolute; color: transparent; -webkit-text-stroke: 0.5px #fff; font-size: 1.5em; transition: 0.25s; } .box span.active { color: #0f0; -webkit-text-stroke: 0.5px #fff0; text-shadow: 0 0 10px #0f0, 0 0 30px #0f0, 0 0 60px #0f0; }