[JavaScript] jQuery - określona akcja działa po przewinięciu strony |
[JavaScript] jQuery - określona akcja działa po przewinięciu strony |
24.12.2014, 10:50:50
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? |
|
|
24.12.2014, 10:53:19
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 |
|
|
24.12.2014, 11:08:03
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 |
|
|
24.12.2014, 11:20:43
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 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ę.
-------------------- |
|
|
24.12.2014, 14:55:14
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ć? |
|
|
24.12.2014, 16:58:06
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
-------------------- |
|
|
24.12.2014, 17:12:54
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 |
|
|
24.12.2014, 21:14:51
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ć
|
|
|
24.12.2014, 21:20:34
Post
#9
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) |
Sprawdź konsolę
|
|
|
24.12.2014, 21:34:17
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 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(){ ... });
|
|
|
24.12.2014, 23:12:42
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ść
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. |
|
|
24.12.2014, 23:32:38
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().
|
|
|
29.12.2014, 22:29:13
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? |
|
|
29.12.2014, 22:37:09
Post
#14
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 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 -------------------- |
|
|
29.12.2014, 22:39:54
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:
|
|
|
29.12.2014, 22:43:08
Post
#16
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
|
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 02:34 |