Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [css] efekt fade in, po scrolowaniu strony do danej sekcji
lukash82
post 1.03.2016, 11:21:09
Post #1





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

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


Witam,

Mam na stronie (typu one page) wykorzystany efekt fadein w css:
  1. @-webkit-keyframes fadeIn {
  2. 0% {
  3. opacity: 0;
  4. }
  5. 100% {
  6. opacity: 1;
  7. }
  8. }
  9.  
  10. @keyframes fadeIn {
  11. 0% {
  12. opacity: 0;
  13. }
  14.  
  15. 100% {
  16. opacity: 1;
  17. }
  18. }
  19.  
  20. .fadeIn {
  21. -webkit-animation-name: fadeIn;
  22. animation-name: fadeIn;
  23. }
  24. /*sekcje */
  25. #home, #oferta, #kontakt{
  26. animation : fadeIn 1s;
  27. -moz-animation : fadeIn 1s; /* Firefox */
  28. -webkit-animation : fadeIn 1s; /* Safari and Chrome */
  29. -o-animation : fadeIn 1s; /* Opera */}


Nic skomplikowanego. Jednak efekt ten generuje się od razu dla wszystkich elementów na stronie, przez co dla niższych partii strony praktycznie go nie widać. Chciałbym uzyskać taki efekt, że w momencie scrolowania strony w kolejnych sekcjach efekt fadein dopiero wtedy jest wywoływany. Jeśli ktoś mógłby mi podpowiedzieć w którą stronę iść. Guglałem trochę, na stockoverflow też nic konkretnego nie znalazłem. Chciałbym uniknąć korzystania z JS, ale jak będzie trzeba to trudno.

Pozdrawiam, Ł.
Go to the top of the page
+Quote Post
kayman
post 1.03.2016, 11:27:40
Post #2





Grupa: Zarejestrowani
Postów: 556
Pomógł: 40
Dołączył: 20.07.2012
Skąd: Warszawa

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


http://www.w3schools.com/css/css3_transitions.asp
Go to the top of the page
+Quote Post
lukash82
post 2.03.2016, 12:10:23
Post #3





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

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


Witam,

Dzięki za naprowadzenie. Nieco udało mi się temat ogarnąć. Ale mam jeszcze "drobny" problem. Najlepiej na przykładzie, popełniłem do tej pory coś takiego: https://jsfiddle.net/hwghx6y8/

Są tam 2 kwadraty.

1 - widoczny od razu, powyżej "linii zgięcia" ekranu. Tu akcja "wjazdu" obrazka odpala się na starcie i jest ok.

2 - widoczny dopiero po scrolowaniu (mówię tu cały czas o stronie typu one page). Przy 2 obrazku chciałbym uzyskać efekt wywołania przesunięcia dopiero w momencie gdy użytkownik zjedzie w to miejsce. A tymczasem to usilnie ładuje się na starcie i tyle...

Chciałbym uzyskać coś takiego: http://www.templatemonster.com/demo/51858.html

Czy do takiego efektu konieczny jest JS? Proszę o jakąś podpowiedź jak tego szukać. Pozdrawiam, Ł.
Go to the top of the page
+Quote Post
Rufus_84
post 2.03.2016, 13:39:54
Post #4





Grupa: Zarejestrowani
Postów: 77
Pomógł: 1
Dołączył: 15.12.2012

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


Witam,
Raczej bez js się nie obejdzie, bo trzeba wykryć, że element jest widoczny.

Można to zrobić w ten sposób:

  1.  
  2. var myDiv = $('.my-div').offset().top - $(window).height();
  3.  
  4. if ($(window).scrollTop() > myDiv) {
  5. $(myDiv).addClass('fadein');
  6. LUB
  7. $(myDiv).fadeIn(500);
  8. }
  9.  



Można dodać klasę po zescrollowaniu co odpali css lub od razu w jquery zastosować fadein

Go to the top of the page
+Quote Post
herWALDI
post 2.03.2016, 14:20:39
Post #5





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 14.05.2013

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


https://daneden.github.io/animate.css/ oraz http://mynameismatthieu.com/WOW/ smile.gif
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: 28.05.2025 - 05:11