Як отримати значення позиції прокрутки документа?
Відповіді:
$(document).height() //returns window height
$(document).scrollTop() //returns scroll position from top of document
scrollHeight
.
Ось як отримати scrollHeight
елемент, отриманий за допомогою селектора jQuery:
$(selector)[0].scrollHeight
Якщо selector
це ідентифікатор елемента (наприклад elemId
), гарантовано, що 0-індексований елемент масиву буде елементом, який ви хочете вибрати, і scrollHeight
буде правильним.
Якщо ви використовуєте Jquery 1.6 або новішої версії, використовуйте prop для доступу до значення.
$(document).prop('scrollHeight')
Попередні версії використовувались для отримання значення з attr, але не після 1.6.
document.getElementById("elementID").scrollHeight
$("elementID").scrollHeight
Щось подібне має вирішити вашу проблему:
$.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: Зателефонуйте цій функції кожного разу, коли вам це потрібно, попередження призначене для тестування ..
Я отримав фактичну висоту прокрутки областей, прокручуваних смугою прокрутки вікна $('body').prop('scrollHeight')
. Це, здається, найпростіше робоче рішення, але я не перевіряв детально сумісність. Емануеле Дель Гранде зазначає ще одне рішення, що це, ймовірно, не буде працювати для IE нижче 8.
Більшість інших рішень чудово підходять для прокручуваних елементів, але це працює для всього вікна. Примітно, що у мене була та сама проблема, що і у Майкла щодо рішення Ankit, а саме - це$(document).prop('scrollHeight')
повернення undefined
.
Спробуйте це:
var scrollHeight = $(scrollable)[0] == document ? document.body.scrollHeight : $(scrollable)[0].scrollHeight;
Ви можете спробувати це, наприклад, цей код розміщує смугу прокрутки внизу для всіх тегів DIV
Пам'ятайте: jQuery може прийняти функцію замість значення як аргумент. "this" - це об'єкт, оброблений jQuery, функція повертає властивість scrollHeight поточного DIV "this" і робить це для всіх DIV у документі.
$("div").scrollTop(function(){return this.scrollHeight})