Utwórz projekt ↗
CSS / JS · KOD NA LICENCJI MIT

Pojawianie przy scrollowaniu

Odsłoń element, gdy wejdzie w kadr.

Edytuj HTML, CSS i JS ↗ Otwórz konfigurator ↗

Gdzie wykorzystać ten przykład?

Elementy strony dopasowane do własnego projektu. Wariant „Pojawianie przy scrollowaniu” możesz dopasować do kolorów i treści swojej strony.

Jak działa ten efekt?

HTML określa strukturę przykładu, CSS jego wygląd, a JavaScript — jeżeli występuje — odpowiada za interakcję. Podgląd pokazuje domyślne ustawienia, które możesz zmienić w edytorze.

Jak dodać go na stronę?

  1. Otwórz przykład w edytorze i podmień tekst oraz kolory.
  2. HTML wstaw w miejscu, w którym ma pojawić się element.
  3. CSS przenieś do arkusza stylów swojej strony. Reguły body z podglądu dopasuj do własnego układu.
  4. JavaScript uruchom po załadowaniu elementów HTML, na przykład przed zamknięciem </body>.
  5. Sprawdź działanie na telefonie, klawiaturą i z własną treścią.

Na co zwrócić uwagę?

Podmień treści i odnośniki. Kod działa w przeglądarce; formularze wymagają osobnej obsługi wysyłania po stronie serwera.

Co możesz zmienić w konfiguratorze?

Nagłówek pierwszej sekcji, Kolor. W edytorze kodu możesz dodatkowo zmienić całą strukturę i zachowanie przykładu.

Gotowy kod: Pojawianie przy scrollowaniu

HTML

<div class="reveal"><h2>Przewiń po więcej ↓</h2><p>Elementy pojawią się, gdy wejdą w kadr.</p></div><div class="reveal"><h2>O, jesteś.</h2><p>Dobrze Cię tutaj widzieć.</p></div><div class="reveal"><h2>Prosto i z wyczuciem.</h2><p>Tak powstaje dobry efekt.</p></div>

CSS

*{box-sizing:border-box}body{margin:0;padding:35px 24px;background:#f4f5ef;color:#293322;font:15px/1.7 Arial,sans-serif;min-height:100vh;display:grid;place-items:center}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #738858;outline-offset:4px}h2,h3,p{margin-top:0}[hidden]{display:none!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
body{display:block}.reveal{min-height:70vh;padding:35px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.reveal h2{font-size:clamp(30px,6vw,58px);line-height:1.2;color:#e95b30}.reveal p{font-size:14px;color:#879875}.reveal.is-waiting{opacity:0;transform:translateY(35px)}.reveal{transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}

JavaScript

if(!matchMedia('(prefers-reduced-motion: reduce)').matches){
    const observer = new IntersectionObserver(entries => {
        entries.forEach(entry => {
            if(!entry.isIntersecting) return;
            entry.target.classList.add('visible');
            observer.unobserve(entry.target);
        });
    }, {threshold:.15});
    document.querySelectorAll('.reveal').forEach(el => {
        el.classList.add('is-waiting');
        observer.observe(el);
    });
}

Podobne przykłady