Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] jQuery - slider
bahh
post
Post #1





Grupa: Zarejestrowani
Postów: 261
Pomógł: 2
Dołączył: 13.05.2012

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


Mam 6 divów o klasach .s, .s2, .s3, .s4, .s5, .s6

Wszystkie są display:none;

1. Przy załadowaniu strony, .s, .s2 są na display:block oraz dodawana jest im klasa animated bounceInLeft.
2. Po 5 sekundach, zmienia się im klasę na animated bounceOutLeft a po 0,8 sekundy .s3, .s4 są na display:block oraz dodawana jest im klasa animated bounceInLeft.
3. Po 10 sekundach, zmienia się im klasę na animated bounceOutLeft a po 0,8 sekundy .s5, .s6 są na display:block oraz dodawana jest im klasa animated bounceInLeft.

Teraz powinna być pętla, cały czas wykonywane są te trzy punkty. Mój kod:

  1. window.onload = function() {
  2. var time = 3000;
  3. $('.s').css({'display':'block'});
  4. $('.s').addClass('animated bounceInLeft');
  5. setTimeout(function(){
  6. $('.s2').css({'display':'block'});
  7. $('.s2').addClass('animated bounceInLeft');
  8. }, 300);
  9.  
  10. setTimeout(function(){
  11. $('.s').addClass('animated bounceOutLeft');
  12. setTimeout(function(){
  13. $('.s2').addClass('animated bounceOutLeft');
  14. }, 300);
  15. setTimeout(function(){
  16. $('.s3').css({'display':'block'});
  17. $('.s3').removeClass('animated bounceOutLeft');
  18. $('.s3').addClass('animated bounceInLeft');
  19. setTimeout(function(){
  20. $('.s4').css({'display':'block'});
  21. $('.s4').removeClass('animated bounceOutLeft');
  22. $('.s4').addClass('animated bounceInLeft');
  23. }, 300);
  24. }, 800);
  25. }, time);
  26.  
  27. setTimeout(function(){
  28. $('.s3').addClass('animated bounceOutLeft');
  29. setTimeout(function(){
  30. $('.s4').addClass('animated bounceOutLeft');
  31. }, 300);
  32. setTimeout(function(){
  33. $('.s5').css({'display':'block'});
  34. $('.s5').removeClass('animated bounceOutLeft');
  35. $('.s5').addClass('animated bounceInLeft');
  36. setTimeout(function(){
  37. $('.s6').css({'display':'block'});
  38. $('.s6').removeClass('animated bounceOutLeft');
  39. $('.s6').addClass('animated bounceInLeft');
  40. }, 300);
  41. }, 800);
  42. }, 2*time);
  43.  
  44. setTimeout(function(){
  45. $('.s5').addClass('animated bounceOutLeft');
  46. setTimeout(function(){
  47. $('.s6').addClass('animated bounceOutLeft');
  48. }, 300);
  49. setTimeout(function(){
  50. $('.s').css({'display':'block'});
  51. $('.s').removeClass('animated bounceOutLeft');
  52. $('.s').addClass('animated bounceInLeft');
  53. setTimeout(function(){
  54. $('.s2').css({'display':'block'});
  55. $('.s2').removeClass('animated bounceOutLeft');
  56. $('.s2').addClass('animated bounceInLeft');
  57. }, 300);
  58. }, 800);
  59. }, 3*time);
  60. }


ale nie wiem jak ustawić powtarzanie się tego. Przy okazji, gdy wszystkie klasy dostaja addClass('animated bounceOutLeft'); musi być przed addClass('animated bounceInLeft'); zrobiony removeClass('animated bounceOutLeft'); żeby animacja zadziałała.

Ten post edytował bahh 10.11.2014, 12:21:04
Go to the top of the page
+Quote Post
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Źle się do tego zabrałeś.
Jeśli będziesz mieć więcej slajdów, to będziesz dodawał dla nich kolejny fragment kodu?
Być może nie będzie więcej, co nie zmienia faktu, że powinieneś zrobić kod wywoływany wewnątrz setInterval, tam dwa slajdy chować, dwa kolejne wysuwać. Jeśli brak kolejnych dwóch slajdów, to resetujesz licznik i pobierasz dwa pierwsze.


--------------------
Go to the top of the page
+Quote Post
bahh
post
Post #3





Grupa: Zarejestrowani
Postów: 261
Pomógł: 2
Dołączył: 13.05.2012

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


jQuery to nowy temat dla mnie, dopiero się uczę na nim pisać kody. Będę wdzięczny za szerszą pomoc smile.gif
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Pokaż strukturę html tego slidera.


--------------------
Go to the top of the page
+Quote Post
bahh
post
Post #5





Grupa: Zarejestrowani
Postów: 261
Pomógł: 2
Dołączył: 13.05.2012

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


To wersja jeszcze nie uproszczona:

  1. <div style="font-size:56px; position:absolute; left:50%; margin-left:-498px; top:80px; text-transform:uppercase; letter-spacing: 0.05ex;" class="s"><span style="font-weight:900; padding-right:50px; color:#f1c40f;">aaa</div>
  2. <div style="font-size:32px; position:absolute; left:50%; margin-left:-498px; top:210px; text-transform:uppercase; color:#f1c40f;" class="s2">bbb</div>
  3. <div style="font-size:56px; position:absolute; left:50%; margin-left:-498px; top:80px; text-transform:uppercase; letter-spacing: 0.05ex;" class="s3"><span style="ccc</div>
  4. <div style="font-size:32px; position:absolute; left:50%; margin-left:-498px; top:210px; text-transform:uppercase; color:#f1c40f;" class="s4">ddd</div>
  5. <div style="font-size:56px; position:absolute; left:50%; margin-left:-498px; top:80px; text-transform:uppercase; letter-spacing: 0.05ex;" class="s5">eee</div>
  6. <div style="font-size:32px; position:absolute; left:50%; margin-left:-498px; top:210px; text-transform:uppercase; color:#f1c40f;" class="s6">fff</div>


Trzeba uwzględnić w sumie sprawdzenie czy przeglądarka obsługuje animations inaczej zastosować animacje zdefiniowane w jquery

Animacje są z tego:
http://daneden.github.io/animate.css/

Chyba, że ma ktoś gotowy kod do jQuery w miarę krótki (bez przycisków itp)

Ten post edytował bahh 10.11.2014, 14:38:25
Go to the top of the page
+Quote Post
trueblue
post
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


http://jsfiddle.net/t708zzdj/1/
Musiałbyś pokombinować jak ustalić sytuację początkową - teraz wszystkie znikają z efektem animacji, i ewentualnie bawić się w przeróbkę tego w przypadku nieobsługiwania animacji CSS.


--------------------
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: 19.08.2025 - 19:57