Zastanawiam się tylko, jak zaimplementować więcej danych na przewijaniu tylko wtedy, gdy widoczny jest div.loading.
Zwykle szukamy wysokości strony i wysokości przewijania, aby sprawdzić, czy musimy załadować więcej danych. ale poniższy przykład jest wtedy trochę skomplikowany.
Poniższy obraz jest doskonałym przykładem. na liście rozwijanej znajdują się dwa elementy div .loading. Kiedy użytkownik przewija zawartość, cokolwiek jest widoczne, powinno zacząć ładować więcej danych.
Jak więc mogę się dowiedzieć, czy .loading div jest jeszcze widoczny dla użytkownika, czy nie? Więc mogę rozpocząć ładowanie danych tylko dla tego div.
źródło
new_element.hide().appendTo('.your_div').fadeIn(); $(window).scrollTop($(window).scrollTop()-1);
Pierwsza linia ładnie dołącza elementy, druga zapewnia, że twoja funkcja nigdy nie zatrzymuje się na dole strony.var end = $("#BottomThing").offset().top; var viewEnd = $(window).scrollTop() + $(window).height(); var distance = end - viewEnd; if (distance < 300) // do load
Słyszałeś o plugin jQuery Waypoint .
Poniżej znajduje się prosty sposób wywołania wtyczki punktów orientacyjnych i załadowania strony więcej treści po osiągnięciu dna podczas przewijania:
źródło
Oto przykład:
źródło
Przyjęta odpowiedź na to pytanie wiąże się z pewnym problemem z chromem, gdy okno jest powiększone do wartości> 100%. Oto kod zalecany przez programistów chrome jako część błędu, który zgłosiłem na tym samym.
Na przykład:
Powiązane pytanie SO
Błąd Chrome
źródło
Jeśli nie cały dokument jest przewijany, powiedzmy, gdy przewijasz się
div
w dokumencie, powyższe rozwiązania nie będą działać bez dostosowań. Oto jak sprawdzić, czy pasek przewijania div dotarł do dołu:źródło
Spędziłem trochę czasu, próbując znaleźć fajną funkcję do pakowania rozwiązania. W każdym razie skończyło się na tym, co uważam za lepsze rozwiązanie podczas ładowania wielu treści na jednej stronie lub w całej witrynie.
Funkcjonować:
Możesz wtedy wywołać funkcję za pomocą okna przy przewijaniu (na przykład możesz również powiązać ją z kliknięciem itp., Tak jak ja też to robię, stąd funkcja):
Używać:
To podejście powinno również działać w przypadku przewijanych elementów div itp. Mam nadzieję, że pomoże, w powyższym pytaniu możesz użyć tego podejścia do ładowania treści w sekcjach, może dołączać i tym samym dryblować wszystkie dane obrazu, a nie zbiorczy kanał.
Zastosowałem to podejście, aby zmniejszyć obciążenie na https://www.taxformcalculator.com . Nie udało się, jeśli spojrzysz na stronę i sprawdzisz element itp., Możesz zobaczyć wpływ na ładowanie strony w Chrome (jako przykład).
źródło
Poprawa odpowiedzi @deepakssn. Istnieje możliwość, że chcesz trochę załadować dane, zanim faktycznie przewiniemy do dołu .
[var scrollLoad] służy do blokowania połączenia do czasu dołączenia nowych danych.
Mam nadzieję że to pomoże.
źródło
Twoje pytanie dotyczy w szczególności ładowania danych, gdy pojawia się element div , a nie gdy użytkownik dotrze do końca strony.
Oto najlepsza odpowiedź na Twoje pytanie: https://stackoverflow.com/a/33979503/3024226
źródło