Przełączanie slajdów, zapętlanie indeksów modulo, interaktywne miniatury oraz trwały stan w localStorage.
Budowa karuzeli lub galerii zdjęć wymaga przechowywania aktualnego stanu w zmiennej liczbowej (np. let aktualnyIndeks = 0 ), która wskazuje na bieżący element tablicy grafik lub opisów.
const slajdy = [
{ tytul: 'Tatry Wysokie', kolor: '#3b82f6' },
{ tytul: 'Karkonosze — Śnieżka', kolor: '#10b981' },
{ tytul: 'Bieszczadzki Park Narodowy', kolor: '#f59e0b' }
];
let aktualnyIndeks = 0;
function pokazSlajd() {
const ramka = document.getElementById('ramkaZdjecia');
const licznik = document.getElementById('licznikSlajdow');
ramka.textContent = slajdy[aktualnyIndeks].tytul;
ramka.style.backgroundColor = slajdy[aktualnyIndeks].kolor;
licznik.textContent = 'Zdjęcie ' + (aktualnyIndeks + 1) + ' z ' + slajdy.length;
}
function nastepnySlajd() {
aktualnyIndeks++;
if (aktualnyIndeks >= slajdy.length) {
aktualnyIndeks = 0;
}
pokazSlajd();
}
function poprzedniSlajd() {
aktualnyIndeks--;
if (aktualnyIndeks < 0) {
aktualnyIndeks = slajdy.length - 1;
}
pokazSlajd();
}
const slajdy = [
{ tytul: 'Tatry Wysokie', kolor: '#3b82f6' },
{ tytul: 'Karkonosze — Śnieżka', kolor: '#10b981' },
{ tytul: 'Bieszczadzki Park Narodowy', kolor: '#f59e0b' }
];
let aktualnyIndeks = 0;
function pokazSlajd() {
const ramka = document.getElementById('ramkaZdjecia');
const licznik = document.getElementById('licznikSlajdow');
ramka.textContent = slajdy[aktualnyIndeks].tytul;
ramka.style.backgroundColor = slajdy[aktualnyIndeks].kolor;
licznik.textContent = 'Zdjęcie ' + (aktualnyIndeks + 1) + ' z ' + slajdy.length;
}
function nastepnySlajd() {
aktualnyIndeks++;
if (aktualnyIndeks >= slajdy.length) {
aktualnyIndeks = 0;
}
pokazSlajd();
}
function poprzedniSlajd() {
aktualnyIndeks--;
if (aktualnyIndeks < 0) {
aktualnyIndeks = slajdy.length - 1;
}
pokazSlajd();
}
Jaki operator arytmetyczny pozwala uzyskać efekt zapętlenia indeksu slajdu po osiągnięciu końca tablicy?
Poprawna: c) Operator modulo % ogranicza narastający indeks do zakresu rozmiaru tablicy, zapętlając cykl.
Drugim powszechnym wzorcem w serwisach internetowych jest podgląd produktu z rzędem miniatur pod dużym zdjęciem głównym. Kliknięcie dowolnej miniatury powoduje natychmiastowe zaktualizowanie głównego kadru.
function zmienMiniature(kliknietaMiniatura, nazwaWidoku, kolorTla) {
const glowny = document.getElementById('glownyObraz');
const podpis = document.getElementById('podpisWidoku');
const wszystkieMiniatury = document.querySelectorAll('.mini-box');
wszystkieMiniatury.forEach(function(m) {
m.classList.remove('aktywna');
});
kliknietaMiniatura.classList.add('aktywna');
glowny.textContent = nazwaWidoku;
glowny.style.backgroundColor = kolorTla;
podpis.textContent = 'Wybrany kąt: ' + nazwaWidoku;
}
function zmienMiniature(kliknietaMiniatura, nazwaWidoku, kolorTla) {
const glowny = document.getElementById('glownyObraz');
const podpis = document.getElementById('podpisWidoku');
const wszystkieMiniatury = document.querySelectorAll('.mini-box');
wszystkieMiniatury.forEach(function(m) {
m.classList.remove('aktywna');
});
kliknietaMiniatura.classList.add('aktywna');
glowny.textContent = nazwaWidoku;
glowny.style.backgroundColor = kolorTla;
podpis.textContent = 'Wybrany kąt: ' + nazwaWidoku;
}
Który atrybut elementu img należy zaktualizować w kodzie JavaScript, aby wyświetlić nowy plik graficzny?
Poprawna: d) Właściwość src odpowiada atrybutowi źródłowemu obrazu w elemencie img.
Mechanizm localStorage umożliwia zapisywanie prostych danych (np. liczby wyświetleń, stanu koszyka czy preferowanego motywu graficznego) bezpośrednio w pamięci przeglądarki użytkownika.
function odczytajPolubienia() {
const zapisane = localStorage.getItem('polubieniaLicznik');
const wynik = document.getElementById('stanPolubien');
const stan = zapisane ? Number(zapisane) : 0;
wynik.textContent = 'Liczba polubień: ' + stan;
return stan;
}
function dodajPolubienie() {
const aktualne = odczytajPolubienia();
const nowe = aktualne + 1;
localStorage.setItem('polubieniaLicznik', nowe);
odczytajPolubienia();
}
function zresetujPolubienia() {
localStorage.removeItem('polubieniaLicznik');
odczytajPolubienia();
}
odczytajPolubienia();
function odczytajPolubienia() {
const zapisane = localStorage.getItem('polubieniaLicznik');
const wynik = document.getElementById('stanPolubien');
const stan = zapisane ? Number(zapisane) : 0;
wynik.textContent = 'Liczba polubień: ' + stan;
return stan;
}
function dodajPolubienie() {
const aktualne = odczytajPolubienia();
const nowe = aktualne + 1;
localStorage.setItem('polubieniaLicznik', nowe);
odczytajPolubienia();
}
function zresetujPolubienia() {
localStorage.removeItem('polubieniaLicznik');
odczytajPolubienia();
}
odczytajPolubienia();
Jaka metoda służy do zapisania wartości tekstowej pod określonym kluczem w pamięci localStorage?
Poprawna: c) Metoda localStorage.setItem() przyjmuje nazwę klucza oraz zapamiętywaną wartość łańcuchową.