![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 10.08.2015 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
przychodzę do Was z moim problemem. Otóż mam jako zadanie domowe napisać (bez użycia gotowych rozwiązań, Lightboxów, JQuery i bibliotek JS z Internetu) Slider, Slideshow zdjęć okazów motyli do mojej strony internetowej. Jest w sieci sporo rozwiązań ale żadno nie do końca odpowiada temu, co jest wymagane i zwykle ma jakiś plugin lub działa dzięki pomocy w.w. dodatków. Sama coś napisałam, jednak jeszcze nie do końca działa to jak powinno. Otóż ten Slider: - powinien prezentować zdjęcia okazów z odpowiadającym podpisem - powinien przy odswieżeniu lub pierwszym wejściu powinien wyświetlić się przypadkowo wylosowany okaz (tego jeszcze nie mam – tu zapewne trzeba pracować z Math.random) - powinien zawierać przycisk do sterowania – dalej i wstecz - powinien mieć wyłączony przycisk dalej przy zdjęciu ostatnim oraz wyłączony przycisk wstecz przy pierwszym (prawie działa, chociaż w moim Sliderze tak jakby nie było końca i po ostatnim zdjęciu pokazuje się pierwsze a powinno się zatrzymać) - powinien „lecieć” dalej ze slajdami, jeśli użytkownik nie użyje żadnego z dwóch przycisków przez 3 sekundy (takie automatyczne przewracanie slajdów). Jeśli zaś użyje przycisku – logicznie automatyczne przełączanie powinno być zdeaktywowane. Da się zrobić coś takiego przy pomocy tylko JS i HTML , bez żadnych dodatków? Mój kod prezentuje się tak: HTML
i JS
Nie wiem czy jest prawidłowy w samym pomyśle, ale jeśli trzeba zacząć na nowo zupełnie inaczej to zrobię tak ![]() Będę bardzo wdzięczna za odpowiedzi, rozwiązania i porady ![]() Pozdrawiam Karamelek |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Cytat Da się zrobić coś takiego przy pomocy tylko JS i HTML , bez żadnych dodatków? Jasne, że się da ![]() Zacznijmy od tego, że podszedłbym do problemu nieco inaczej. Umieściłbym w kodzie HTML elementy dla każdego slajdu (czyli obrazek + podpis) - najlepiej w liście. Następnie przy wczytaniu strony ukryłbym wszystkie elementy listy i pokazał losowy (losowanie można zrobić przy pomocy: http://javascript.pl/articles/losowa-liczb...go-zakresu.html - zakres to od 0 do tablicaElementow.length - 1). Blokowanie przycisków prosto zrobić na liczniku (w gruncie rzeczy masz to). Natomiast zmianę slajdów zrobiłbym na rekurencyjnym setTimeout (jakoś tak mi się to wydaje bardziej do kontrolowania). Oczywiście musisz se zapisać timer id do zmiennej, żeby go przerwać: Kod var timerId = setTimeout(function() {}, 1000);
//i jak ktoś pacnie button to: clearTimeout(timerId); -------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 10.08.2015 Ostrzeżenie: (0%) ![]() ![]() |
Z racji tego, ze nie bedzie wiecej niz 6 slajdow i tak, lepiej bedzie chyba mi od razu uzyc
Kod Math.floor(Math.random() * 6) + 1 tylko jak to wszystko do kupy zlozyc ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Jest pewna różnica między "nie więcej niż 6" oraz "dokładnie 6" - takie losowanie będzie działać tylko i wyłącznie w drugim przypadku.
-------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 10.08.2015 Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem. Pobawie sie tym i dam znac, chyba, ze masz jeszcze jakies pomysly. Moglabym wyslac caly kod (jest troche wiecej tego) ale na priv, bo nie chce dawac rozwiazan tak publicznie (ach te zadania szkolne)
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 06:43 |