Tworzenie prostego slidera

Dziś, w pierwszym merytorycznym wpisie, przedstawię metodę na stworzenie porstego slidera z pomocą biblioteki jQuery. Jest to sposób podpatrzony u mojego kolegi, podczas pracy przy wspólnym projekcie. Na potrzeby artykułu został on uproszczony.

Sposobów na stworzenie slider’u jest pewnie tyle, ilu programistów, więc nie musi być to wersja optymalna i pozbawiona błędów – uczymy się przecież przez całe życie :).

Jako zachętę do zapoznania się z wpisem, prezentuję efekt końcowy.

See the Pen Simple slider by Łukasz Woźniak (@lwozniak) on CodePen.

HTML

Tworzenie slidera rozpoczynamy od przygotowania szkieletu HTML. Umieścimy w nim również dane, tj. linki do zdjęć oraz tekst, który chcemy umieścić na kolejnych slajdach.

Wydzielamy dwa div’y. Pierwszy, z identyfikatorem „slider”, który określa jego położenie. Drugi, „sliderTmp”, jest div’em pomocniczym przechowującym dane. Nie będzie on wyświetlany.

Atrybut „data-background” przechowuje link do grafiki a „data-text” – tekst.

CSS

Zaczynamy od globalnego wyzerowania marginesów, paddingu oraz ustawienia border-box’u.

 

Div pomocniczy potrzebny jest jedynie dla danych, więc nie chcemy, by się wyświetlał.

 

Czas na kontener, który opakuje nam właściwą zawartość slider’u. Osobiście uważam, że powinien zajmować całą szerokość strony. Wysokość wedle uznania. W przykładzie zajmie cały ekran.

 

W strukturze HTML nie znajdziemy div’a o klasie „slide”. Zostanie on dodany za pomocą jQuery. To właśnie do niego wczytamy tekst oraz zdjęcie i, z pomocą JavaScriptu, będziemy iterować po kolejnych elementach tej klasy.

W atrybutach brakuje pozycji „background-image” – to też robota dla jQuery.

„display: none” spowoduje niewyświetlenie się pierwszego zdjęcia podczas pierwszej iteracji (po wczytaniu strony). Aby rozwiązać ten problem, musimy mu nadać wyświetlanie blokowe.

 

Na koniec ostylujemy tekst.

jQuery

Czas na back-end naszego slidera. Tu umieszczona jest cała logika. Najpierw zmienne (kolejno: referencje do obiektów HTML’owych; indeks aktywnego slajdu; liczba slajdów; czas trwania slajdu [ms]; czas animacji [ms]).

 

Funkcję „SetUp” możemy potraktować jak konstruktor slider’a. Zaczynamy od przypisania do zmiennych interesujących nas obiektów HTML, tj. „tmpSlider” i „slider”. Deklarujemy indeks pierwszego aktywnego slide’a. Zczytujemy ilość div’ów, odpowiadających kolejnym elementom do wyświetlenia.

Następnie dodajemy w pętli, do przygotowanego kontenera „slider”, div’y o klasie „slide”. Każdemu z nich nadajemy własne id. Wewnątrz umieszczamy div „slideText”, który opakuje nam tekst. Na koniec pozostaje nam przypisać atrybut „background-image” oraz tekst – dane pobieramy z przygotowanego na początku div’a „sliderTmp”.

Dla rozjaśnienia przykładu zamieszczę jeszcze kod po wykonaniu się funkcji „SetUp”. W danej chwili tylko jeden element klasy „slide” ma ustawione „display: block”.

 

Po przygotowaniu danych czas odpalić maszynę. Odpowiada za to zapętlona funkcja „Run”…

…która cyklicznie wywołuję funkcję „Animate”…

…która wywołuje kolejne funkcje :). „ChangeActiveSlideIndex”, jak nazwa wskazuje, zmienia indeks aktywnego slajdu…

…a „ChangeSlide” – zmienia wyświetlaną zawartość.

 

Pozostaje tylko wywołać nasz skrypt i gotowe.

Jeśli dotarłeś(aś) aż tutaj, zostaw proszę komentarz :).

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">