Jak uzyskać wartość pozycji przewijania dokumentu?
Odpowiedzi:
$(document).height() //returns window height
$(document).scrollTop() //returns scroll position from top of document
scrollHeight
.
Oto jak uzyskać scrollHeight
element uzyskany za pomocą selektora jQuery:
$(selector)[0].scrollHeight
Jeśli selector
jest to identyfikator elementu (np. elemId
), Gwarantuje się, że indeksowany przez 0 element tablicy będzie elementem, który chcesz wybrać i scrollHeight
będzie poprawny.
Jeśli używasz Jquery 1.6 lub nowszego, użyj właściwości, aby uzyskać dostęp do wartości.
$(document).prop('scrollHeight')
Poprzednie wersje pobierały wartość z attr, ale nie publikowały wersji 1.6.
document.getElementById("elementID").scrollHeight
$("elementID").scrollHeight
Coś takiego powinno rozwiązać Twój problem:
$.getDocHeight = function(){
var D = document;
return Math.max(Math.max(D.body.scrollHeight, D.documentElement.scrollHeight), Math.max(D.body.offsetHeight, D.documentElement.offsetHeight), Math.max(D.body.clientHeight, D.documentElement.clientHeight));
};
alert( $.getDocHeight() );
Ps: Wywołaj tę funkcję za każdym razem, gdy jej potrzebujesz, alert służy do celów testowych.
Aby uzyskać rzeczywistą przewijalną wysokość obszarów przewijanych przez pasek przewijania okna, użyłem $('body').prop('scrollHeight')
. Wydaje się, że jest to najprostsze działające rozwiązanie, ale nie sprawdzałem szczegółowo pod kątem kompatybilności. Emanuele Del Grande zwraca uwagę na inne rozwiązanie, które prawdopodobnie nie zadziała dla IE poniżej 8.
Większość innych rozwiązań działa dobrze w przypadku elementów przewijanych, ale działa to dla całego okna. Warto zauważyć, że miałem ten sam problem z rozwiązaniem Ankit, co Michael, a mianowicie $(document).prop('scrollHeight')
powrót undefined
.
Spróbuj tego:
var scrollHeight = $(scrollable)[0] == document ? document.body.scrollHeight : $(scrollable)[0].scrollHeight;
Możesz spróbować tego na przykład, ten kod umieści pasek przewijania na dole dla wszystkich tagów DIV
Pamiętaj: jQuery może zaakceptować funkcję zamiast wartości jako argument. „this” jest obiektem traktowanym przez jQuery, funkcja zwraca właściwość scrollHeight aktualnego DIV „this” i robi to dla wszystkich DIV w dokumencie.
$("div").scrollTop(function(){return this.scrollHeight})