Dataczwartek, 13 sierpnia 2026 Czas18:00:06
← Popularne skrypty

Skrypt 13: Prosta karuzela/slider obrazków

Trudny / egzaminacyjny

Teoria

Przełącza kolejne obrazki (np. plakaty filmów, zdjęcia produktu) przyciskami "Poprzedni"/"Następny", zapętlając się od ostatniego z powrotem do pierwszego i odwrotnie.

Kod (JavaScript)

<div class="karuzela">
    <img id="obrazekKaruzeli" src="plakat1.jpg">
    <button id="poprzedni">Poprzedni</button>
    <button id="nastepny">Następny</button>
</div>

<script>
    const obrazki = ["plakat1.jpg", "plakat2.jpg", "plakat3.jpg"];
    let aktualnyIndeks = ;
    const obrazekKaruzeli = document.getElementById("obrazekKaruzeli");

    document.getElementById("nastepny").addEventListener("click", function () {
        aktualnyIndeks = (aktualnyIndeks + 1) % obrazki.length; // "zawija się" po ostatnim
        obrazekKaruzeli.src = obrazki[aktualnyIndeks];
    });

    document.getElementById("poprzedni").addEventListener("click", function () {
        aktualnyIndeks = (aktualnyIndeks - 1 + obrazki.length) % obrazki.length;
        obrazekKaruzeli.src = obrazki[aktualnyIndeks];
    });
</script>

Komentarz i wyjaśnienie kodu

Operator % (reszta z dzielenia) to sposób na "zawinięcie" indeksu w tablicy — (aktualnyIndeks + 1) % obrazki.length po osiągnięciu ostatniego elementu automatycznie wraca do indeksu 0. Przy cofaniu dodajemy + obrazki.length PRZED obliczeniem reszty, żeby uniknąć ujemnego indeksu (JavaScript inaczej liczy resztę z liczb ujemnych, niż można by się intuicyjnie spodziewać).

Typowe błędy

Częsty błąd to brak zabezpieczenia "zawijania" indeksu przy cofaniu (samo aktualnyIndeks - 1 bez dodania długości tablicy) — przy pierwszym obrazku dałoby to indeks -1, czyli błąd "undefined" zamiast oczekiwanego ostatniego obrazka.