Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] tworzenie wlasnych sliderow
bialko0019
post
Post #1





Grupa: Zarejestrowani
Postów: 294
Pomógł: 4
Dołączył: 19.12.2008

Ostrzeżenie: (0%)
-----


Witam Was. Mam takie dosyć dziwne pytanie. Tworzę sobie nowy sliderek (prowizorycznie).

Daję trzy div`y, które każdy ma inny identyfikato. Przypuścmy #div1, #div2 i #div3. Każdy ma style: display:none;

Teraz przycisku. Każdy ma równiez inny identyfikator, np. #przycisk1, #przycisk2 i #przycisk3.

Teraz aby obsłużyć ten slider, robię tak, że po kliknięciu #przycisk1 zamykam #div2 oraz #div3 i otwieram #div1. I tak przy każdej klatce. Trochę to uciążliwe i wiem, że to jest nie fachowe tyle javascrptu pakować. Jak to lepiej rozwiązać? Dla przykładu robię tak:

  1. <script type="text/javascript">
  2.  
  3. $('#przycisk1').click(function(){
  4. $('#div1').show('slow');
  5. $('#div2').hide('slow');
  6. $('#div3').hide('slow');
  7. });
  8.  
  9. $('#przycisk2').click(function(){
  10. $('#div1').hide('slow');
  11. $('#div2').show('slow');
  12. $('#div3').hide('slow');
  13. });
  14.  
  15. // itd itd...
  16.  


Jak to fachowo powinno się rozwiązać? Jakoś utworzyć funkcję, onClick może, ale dalej nie wiem... ?


--------------------
---
"kto pyta ten nie błądzi"...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
c1chy
post
Post #2





Grupa: Zarejestrowani
Postów: 72
Pomógł: 16
Dołączył: 21.06.2013

Ostrzeżenie: (0%)
-----


najprościej użyć jednego z miliarda gotowych sliderów smile.gif na szybko napisałem coś takiego:

http://jsfiddle.net/AUPNb/

też działa, chociaż byłbym jednak za skorzystaniem z czegoś gotowego.


--------------------
devstrefa.wordpress.com
Go to the top of the page
+Quote Post
bialko0019
post
Post #3





Grupa: Zarejestrowani
Postów: 294
Pomógł: 4
Dołączył: 19.12.2008

Ostrzeżenie: (0%)
-----


Kolego, naprawde jestem pełny podziwu - doświadczenie i robi swoje ;-)
Ja głupio się przyznać trochę się opusciłem w Javascripcie i mam do Ciebie pytanie - czy mógłbyś troszkę wyjaśnić linijki oznaczone komentarze w wolnej chwili? Naprawdę napisałes to w chwilę, a bardzo mi ułatwi to pracę ;-)

A nie wybriam gotowych sliderów bo chcę się nauczyć tworzenia sliderów, no i nie raz jest wymagane stworzenie slidera, na wygląd i działanie inne niż miliony gotowych ;-) Dziękuję za szybką odpowiedź.


  1. $(document).ready(function(){
  2.  
  3. $('.przycisk').on('click',function(e){
  4.  
  5. e.preventDefault(); //co to za zmienna e? jaka jest jej wartośc?
  6.  
  7. var index=parseInt($(this).attr('rel'))-1; //czy mogłbyś wytłumaczyć tą linijkę w wolnej chwili czasu?
  8.  
  9. $('.slide').hide();
  10.  
  11. $('.slide').eq(index).show(); // pierwszey raz słyszę o eq() - mógłbyś mi troszeczkę to wyjaśnić?
  12.  
  13.  
  14. });
  15.  
  16. });




--------------------
---
"kto pyta ten nie błądzi"...
Go to the top of the page
+Quote Post
c1chy
post
Post #4





Grupa: Zarejestrowani
Postów: 72
Pomógł: 16
Dołączył: 21.06.2013

Ostrzeżenie: (0%)
-----


Tutaj nic trudnego raczej nie ma a kod jest pisany na szybko...

Co do objaśnień

e to eventObject (http://api.jquery.com/category/events/event-object/) preventDefault zapobiega wykonaniu domyślnej akcji dla danego zdarzenia co w przypadku kliknięcia w link spowodowało by wczytanie tego linku

[JAVASCRIPT] pobierz, plaintext
  1. var index=parseInt($(this).attr('rel'))-1;
[JAVASCRIPT] pobierz, plaintext


w zasadzie oznacza to tyle co wczytaj wartość w atrybucie rel elementu który został kliknięty, zrób z niej liczbę i odejmij 1 następnie przypisz do zmiennej index smile.gif
dlatego jest tam <a class="przycisk" rel="1"> a odejmujemy 1 ponieważ index elementów w jQuery liczy się od zera czyli dla slajd 1 poprawny index to 0 dla slajd 2 to 1 itd.

.eq() - pozwala na odwołanie się do n-tego elementu z wybranych czyli wybieramy wszystkie elementy o klasie slajd i odwołujemy się tylko do elementu index

Więcej szczegółów i przykładów znajdziesz w dokumentacji jQuery sporo można się tam dowiedzieć.


--------------------
devstrefa.wordpress.com
Go to the top of the page
+Quote Post
dżozef
post
Post #5





Grupa: Zarejestrowani
Postów: 125
Pomógł: 9
Dołączył: 25.05.2013

Ostrzeżenie: (0%)
-----


e.preventDefault(); - zapobiega wykonaniu domyślnej akcji
$('.slide').eq(index).show(); - eq pozwala wybrać jeden indeks (zobacz: http://api.jquery.com/eq/ )


--------------------
Go to the top of the page
+Quote Post
bialko0019
post
Post #6





Grupa: Zarejestrowani
Postów: 294
Pomógł: 4
Dołączył: 19.12.2008

Ostrzeżenie: (0%)
-----


Dziękować Wam bardzo! ;-) Coraz fajniejsze stronki mozna budować kurcze dzięki CSS3, JavaScript - zatraciłem się w programowaniu jakiemś tam obiektowym a takih fajnych rzeczy nie wiedziałem że można działać ;-) Dzięki! ;p


--------------------
---
"kto pyta ten nie błądzi"...
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #7





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Tylko że do slidera to Ci jeszcze sporo brakuje. Slider to automatyczny pokaz slajdów - powinno automatycznie przeskakiwać co określony odstęp czasu do kolejnego obrazka / elementu.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 12:01