Hero Slider · vanilla JS
Príbehy, ktoré zaujmú na prvý pohľad
Elegantný posuvník v čistom HTML, CSS a JavaScripte. Žiadne frameworky, žiadne závislosti – len rýchly a plynulý zážitok.
Čo ponúka
Všetko, čo od moderného hero slidera očakávaš – bez jediného riadku cudzieho kódu.
Tri režimy prechodu – posun, preblik a priblíženie – s easing krivkou a odsunutým vstupom obsahu.
Ťahanie prstom alebo myšou so živým náhľadom, detekciou smeru a gumenou päťou na okrajoch.
Automatické prehrávanie sa pozastaví pri prejdení kurzorom, zameraní klávesnicou aj pri prepnutí karty.
Šípky, medzerník, Home/End aj skratky pre nastavenia a celú obrazovku. Všetko zdokumentované nižšie.
ARIA roly, oznamovacia oblasť pre čítačky, viditeľné zameranie a rešpektovanie zníženého pohybu.
Prísna CSP, žiadne inline skripty ani eval, validácia nastavení z localStorage proti poškodeným dátam.
Animuje len transform a opacity (GPU akcelerácia), progres beží na requestAnimationFrame, obrázky sa lenivě načítajú.
Panel s živým náhľadom – animácia, rýchlosť, trvanie, Ken Burns, slučka a viditeľnosť prvkov. Uloží sa do localStorage.
Ovládanie
| ← → | predchádzajúci / nasledujúci snímok |
|---|---|
| Medzerník | spustiť alebo pozastaviť prehrávanie |
| Home End | prvý / posledný snímok |
| S | otvoriť / zavrieť nastavenia |
| F | celá obrazovka |
| Esc | zavrieť nastavenia |
Integrácia
Trieda HeroSlider je samostatný súbor bez závislostí. Stačí ho pripojiť a inicializovať.
<section class="hero">
<article class="slide">…</article>
<article class="slide">…</article>
<!-- ovládacie prvky [data-control="prev|next|dots|play|…"] -->
</section>
<script src="js/hero-slider.js" defer></script>
<script src="js/app.js" defer></script>
const slider = new HeroSlider(document.querySelector('.hero'), {
animation: 'slide', // 'slide' | 'fade' | 'zoom'
autoplay: true,
interval: 6000, // ms na snímok (2 000 – 15 000)
duration: 700, // trvanie prechodu (200 – 1 500 ms)
kenburns: true,
loop: true,
});
slider.addEventListener('change', (e) => {
console.log('Aktívny snímok:', e.detail.index);
});
Celé API: next(), prev(), goTo(i), play(), pause(), setOptions(obj), hold(kľúč, bool) a udalosti change, options, play, pause. Inštanciu nájdeš aj v konzole ako window.heroSlider.