![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 261 Pomógł: 2 Dołączył: 13.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich,
borykam się z pewnym problemem, otóż - mam funkcję, która ma się wykonać po przewinięciu strony. To znaczy, jeśli scroll będzie na wysokości 500 pikseli od samej góry strony, to uruchomi to (ważne, uruchomi to TYLKO RAZ!)
w jaki sposób to zrobić? Korzystałem z $(window).scrollTop() jako if (tzn var scroll1 = $(window).scrollTop() i dalej if (scroll1>500) ale za każdym razem, gdy przewinąłem stronę i wróciłem w górę to animacja odpalała się ponownie - czego rzecz jasna nie chcę. Ma ktoś pomysł, jak zrobić to tak, by dana akcja uruchomiła się tylko jeden raz po przewinięciu strony do danej wartości? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Zdefiniuj jakąś zmienną przykładowo
var animacja = true; przed wykonaniem animacji sprawdz czy animacja == true, jesli tak to ją wykonaj i ustaw na false |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 261 Pomógł: 2 Dołączył: 13.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie działa, mój kod:
Ten post edytował bahh 24.12.2014, 11:08:21 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Scrolled jest tu pobierane raz po załadowaniu. Ty potrzebujesz przypiąć zdarzenie $(window).on('scroll') i w nim sprawdzać pozycję.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 261 Pomógł: 2 Dołączył: 13.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
gdy zmieniam
var scrolled = $(window).scrollTop(); na var scrolled = $(window).on('scroll'); to nic to nie daje, jak to poprawnie wykonać? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 675 Pomógł: 58 Dołączył: 17.12.2013 Ostrzeżenie: (10%) ![]() ![]() |
Ten post edytował tzm 24.12.2014, 19:24:26 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 261 Pomógł: 2 Dołączył: 13.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
niestety nie śmiga to, po prostu jQuery przestaje działać
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź konsolę
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 261 Pomógł: 2 Dołączył: 13.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Panowie, nie znam się dobrze na jQuery (IMG:style_emoticons/default/smile.gif) liczę na wyrozumiałość, zwłaszcza, że funkcje, które tutaj podajecie są dla mnie niezrozumiałe. Dodatkowo dla informacji wrzucam powyższy kod do $(document).ready(function(){ ... });
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 197 Pomógł: 24 Dołączył: 22.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Liczysz na gotowca, a nie wyrozumiałość (IMG:style_emoticons/default/smile.gif)
Zacząłbym od edycji tej linijki: Kod If ( scrolled == 500 && oneTimeEvent == false){ Ponieważ przewijasz stronę partiami, zapewne przeskakujesz wartość 500. Ustaw na "większe lub równe " wtedy zarówno 500, jak i 510 i 520 uruchomi zdarzenie. Kod If ( scrolled >= 500 && oneTimeEvent == false){ Poza tym, jeśli nie masz pewności, czy funkcja działa, po Kod $(window).on('scroll', function(){ var scrolled = $(this).scrollTop(); Dodaj sobie np. console.log(scrolled) to będziesz wiedział, jak ta wartość się zmienia w zależności od pozycji strony. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 675 Pomógł: 58 Dołączył: 17.12.2013 Ostrzeżenie: (10%) ![]() ![]() |
Nie jestem pewien co zwraca scrollTop. Najwyżej dopisz parseInt().
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 261 Pomógł: 2 Dołączył: 13.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
scrollTop zwraca wartość numeryczną - pozycję od danego elementu. W naszym przypadku wysokość okna. Samo działanie funkcji mogę testować ale ta funkcja ma błąd już w strukturze. Błąd typu jak w PHP brak średnika itp. Nie mogę testować, bo po wklejeniu powyższego kodu cały jQuery nie działa. Nie wiem gdzie jest błąd w tamtejszej składni
http://jsfiddle.net/41wwyxsz/ nikt nie pomoże? |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
.body a nie body?
If zamiast if? Zmień == na >= Ten post edytował trueblue 29.12.2014, 22:37:53 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 261 Pomógł: 2 Dołączył: 13.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
mam i rozwiązanie w pełni działające, jak ktoś potrzebuje niech korzysta:
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.09.2025 - 21:24 |