Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Łączenie animacji.
Leniobitz
post 3.12.2013, 01:12:16
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 1.08.2013

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


Witam, mam następujący problem. Generalnie chciałbym stworzyć stronę na której wykonywana jest jakas animacja, po niej, w odstepie czasu, kolejna. Problem polega na tym, ze jezeli animacja druga ma zostac wykonana po zakonczeniu pierwszej nic sie nie dzieje, nawet jezeli jest to 1 sekundowa przerwa. Jezeli wlacze ja w trakcie pierwszej, problem znika. W jaki sposob moge zainicjowac druga animacje po zakonczeniu pierwszej?
Pozdrawiam.

P.S. Na razie nie jestem zainteresowany zadnymi rozwiazaniami zwiazanymi z SVG, chodzi mi o czysty CSS3.
Go to the top of the page
+Quote Post
werdan
post 3.12.2013, 07:01:07
Post #2





Grupa: Zarejestrowani
Postów: 354
Pomógł: 100
Dołączył: 14.11.2013
Skąd: Płock

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


Najszybciej to chyba ustawic odpowiedni transition-delay. Mozesz tez zapoznac sie z transitionend

http://stackoverflow.com/questions/2087510...-css-transition
Go to the top of the page
+Quote Post
Leniobitz
post 3.12.2013, 10:07:00
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 1.08.2013

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


Właśnie nie chodzi mi o jakis skrypt JS, chodzi mi o czysty CSS3 i wyjasnienie dlaczego ta druga animacja nie odpala sie po zakonczeniu poprzedniej.
Go to the top of the page
+Quote Post
werdan
post 3.12.2013, 10:35:19
Post #4





Grupa: Zarejestrowani
Postów: 354
Pomógł: 100
Dołączył: 14.11.2013
Skąd: Płock

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


Daj jakiś kod. Tak to cięzko biggrin.gif
Go to the top of the page
+Quote Post
Leniobitz
post 3.12.2013, 11:54:46
Post #5





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 1.08.2013

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


  1. <header>
  2. <link rel="Stylesheet" type="text/css" href="css/style.css" />
  3. </header>
  4. <div class="container">
  5. <div class="step_one">
  6. <div class="test"></div>
  7. </div>
  8. </div>
  9. </body>
  10. </html

  1. .test
  2. {
  3. width: 100px;
  4. height: 100px;
  5. background: 86c31c;
  6. z-index: 2;
  7. float: left;
  8. margin:auto;
  9. margin-top: 100px;
  10. animation-name: test;
  11. animation-duration: 3s;
  12. animation-delay:300ms;
  13. animation-iteration-count:1;
  14. animation-timing-function:ease-in-out;
  15. animation-fill-mode:forwards;
  16.  
  17. -webkit-animation-name: test,testowy,testt;
  18. -webkit-animation-duration: 0.5s,3s,1s;
  19. -webkit-animation-delay:300ms,2s,10s;
  20. -webkit-animation-iteration-count:1,1,1;
  21. -webkit-animation-timing-function:ease-in-out;
  22. -webkit-animation-fill-mode:forwards;
  23.  
  24. }
  25. @keyframes test
  26. {
  27. 0% { transform:translate(0,0); }
  28. 100% { transform:translate(-150%,-150%); }
  29. }
  30.  
  31. @-webkit-keyframes test
  32. {
  33. 0% { -webkit-transform:translate(0,0); }
  34. 100% { -webkit-transform:translate(-200%,-200%); }
  35. }
  36. @keyframes testowy
  37. {
  38. 0% { background: yellow}
  39. 100% {background: black; }
  40. }
  41. @-webkit-keyframes testowy
  42. {
  43. 0% { background: yellow}
  44. 100% {background: black; }
  45. }
  46. @keyframes testt
  47. {
  48. 0% { transform:translate(-150%,-150%); }
  49. 100% { transform:translate(340%,-150%); }
  50. }
  51.  
  52. @-webkit-keyframes testt
  53. {
  54. 0% { -webkit-transform:translate(-150%,-150%); }
  55. 100% { -webkit-transform:translate(340%,-200%); }
  56. }

teraz niby wszystkie animacje sa wykonywane, ale "testowy" i "testt" wykonywane sa jednoczesnie, mimo ze powinno być opoznienie. Dodatkowo animacja testt zaczyna sie w innym punkcie niz skonczyla sie animacja "test"

Ten post edytował Leniobitz 3.12.2013, 11:58:20
Go to the top of the page
+Quote Post
werdan
post 3.12.2013, 13:22:38
Post #6





Grupa: Zarejestrowani
Postów: 354
Pomógł: 100
Dołączył: 14.11.2013
Skąd: Płock

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


  1. <header>
  2. <link rel="Stylesheet" type="text/css" href="css/style.css" />
  3. .test
  4. {
  5. width: 100px;
  6. height: 100px;
  7. background: #86c31c;
  8. z-index: 2;
  9. float: left;
  10. margin:auto;
  11. margin-top: 300px;
  12. margin-left:500px;
  13.  
  14.  
  15. -webkit-animation-name: test,testowy,testt;
  16. -webkit-animation-duration: 2s,2s,3s;
  17. -webkit-animation-delay:0s,2s,4s;
  18. -webkit-animation-iteration-count:1,1,1;
  19. -webkit-animation-timing-function:ease-in-out;
  20. -webkit-animation-fill-mode:forwards;
  21.  
  22. }
  23.  
  24.  
  25. @-webkit-keyframes test
  26. {
  27. 0% { -webkit-transform:translate(-100%,-100%); }
  28. 100% { -webkit-transform:translate(-200%,-200%); }
  29. }
  30.  
  31. @-webkit-keyframes testowy
  32. {
  33. 0% {background: #86c31c;}
  34. 100% {background: black;}
  35. }
  36.  
  37.  
  38. @-webkit-keyframes testt
  39. {
  40. 0% { -webkit-transform:translate(-200%,-200%); }
  41. 100% { -webkit-transform:translate(340%,-200%); }
  42. }
  43. </style>
  44. </header>
  45. <div class="container">
  46. <div class="step_one">
  47. <div class="test"></div>
  48. </div>
  49. </div>
  50. </body>
  51. </html


Przykład ponizej.

http://jsfiddle.net/qvVam/

Wersja tylko dla webkita!


Wartosci poczatkowe kolejnych animacji musza byc takie same jako końcowe wczesniejszych.

Ten post edytował werdan 3.12.2013, 13:24:11
Go to the top of the page
+Quote Post
lukasz1985
post 4.12.2013, 11:55:03
Post #7





Grupa: Zarejestrowani
Postów: 205
Pomógł: 43
Dołączył: 5.03.2012

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


Nie wiem po co zadawać sobie ból tymi przejściami w CSS3 który w obecnej fazie rozwoju wygląda tragicznie i nie jest obsługiwany przez wszystkie przeglądarki. Lepiej, póki co napisać kilka linii w JS i mieć pewność, że efekt będzie taki sam, a i kod nie będzie wyglądał kretyńsko.
Go to the top of the page
+Quote Post
Leniobitz
post 5.12.2013, 02:09:31
Post #8





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 1.08.2013

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


Werdan, wielkie dzieki. Zastanawia mnie tylko, jak zrobic, zeby miedzy animacjami byla przerwa, ale mimo to wszystkie zostaly wykonane - jedyne co przychodzi mi do glowy, to danie dla 0% takich parametrow jak dla 100% poprzedniej animacji a dopiero po ilus procentach czasu rozpoczecie wlasciwej animacji.
Lukasz1985 - pewnie ze mozna uzyc latwiejszych sposob, ja jednak postawilem sobie takie rozwiazanie za cel, pozwala mi to dzieki temu lepiej zrozumiec CSS3.
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 07:56