Как получить значение позиции прокрутки документа?Как получить положение прокрутки документа?
ответ
$(document).height() //returns window height
$(document).scrollTop() //returns scroll position from top of document
Что-то, как это должно решить проблему:
$.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: Вызов этой функции каждый раз, когда вам это нужно, предупреждение для целей тестирования ..
По какой-то причине эта функция работает неправильно для меня; используя его внутри iframe. Фактическая высота составляет 256 пикселей, эта функция дает мне 337px, и я понятия не имею, откуда она. Постскриптум Я использую Chrome 18. – jurchiks
@jurchiks: У вас есть ссылка на то, где это iframe, для меня, чтобы взглянуть? – Zuul
https://www.blade.dateks.lv/salidzinat?ids=58664,43586. Нажмите на любую из вопросительных знаков. Мне удалось исправить большую часть из них, но две из них (и есть больше в зависимости от сравниваемых предметов) по-прежнему имеют какой-то странный, таинственный рубеж ~ 20px внизу. Он исчезает, когда я изменяю размер окна, потому что я заставил его изменить размеры всплывающих окон при изменении размера окна. – jurchiks
document.getElementById("elementID").scrollHeight
$("elementID").scrollHeight
Итак, что такое элемент Id вашего объекта документа? ... возможно, вы имели в виду «document.body.scrollHeight»? – BrainSlugs83
$ ('# gallery'). ScrollHeight дает мне undefined // # gallery is id моего переполнения: автоматический элемент, не работает –
Вот как для получения scrollHeight
элемента, полученного с помощью селектора jQuery:
$(selector)[0].scrollHeight
Если selector
является идентификатором элемента (например, elemId
), будет гарантированно, что элемент с индексом 0 будет элементом, который вы хотите выбрать, и scrollHeight
будет правильным.
Позаботьтесь, согласно базе знаний Mozilla, она не поддерживается из версий IE меньше, чем 8.0 https://developer.mozilla.org/en/DOM/element.scrollHeight –
Точно как @EmanueleDelGrande говорит: посмотрите здесь: http://www.quirksmode.org/dom/w3c_cssom.html - для IE <8 DOM scrollHeight выполняется, но неправильно. Для меня это работает в IE 6, 7 на netrenderer, но может не работать во всех случаях. – TMS
Согласовано с @Tomas, используйте абстракцию jQuery для лучшей обработки кросс-браузера. Например, вышесказанное может быть изменено на $ (selector) .offset(). Top –
Если вы используете JQuery 1.6 или выше, используйте prop для доступа к значению.
$(document).prop('scrollHeight')
Предыдущие версии, используемые для получения значения от attr, но не после 1.6.
Это возвращает «undefined» для меня с jQuery 1.7.1, как и $ (document) .attr («scrollHeight»). – Michael
Это потому, что отсутствует элемент тела. Он должен быть $ (document.body) .prop ('scrollHeight') - в этот момент вы можете просто использовать document.body.scrollHeight; – goddogsrunning
Чтобы получить фактическую прокручиваемую высоту областей, прокручиваемых оконной полосой прокрутки, я использовал $('body').prop('scrollHeight')
. Это, кажется, самое простое рабочее решение, но я не очень тщательно проверял его на совместимость. Эмануэле Дель Гранде отмечает другое решение, которое, вероятно, не будет работать для IE ниже 8.
Большинство других решений отлично работают для прокручиваемых элементов, но это работает для всего окна. Примечательно, что у меня была такая же проблема, как Майкл для решения Ankit, а именно, что $(document).prop('scrollHeight')
возвращает undefined
.
Он использует элементы HTML DOM, но не селектор jQuery. Он может быть использован как:
var height = document.body.scrollHeight;
Попробуйте это:
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})
- 1. Как получить положение прокрутки после остановки прокрутки?
- 2. Как получить положение прокрутки webView
- 3. Как получить положение индикатора прокрутки?
- 4. Как получить положение полосы прокрутки
- 5. Получить положение прокрутки UIPageViewController
- 6. Получить положение прокрутки списка просмотра
- 7. Не удается получить положение прокрутки
- 8. Получить положение прокрутки в Javascript
- 9. Как получить положение прокрутки для RichTextBox?
- 10. Как сохранить положение прокрутки?
- 11. boundingClientRect, чтобы получить положение элемента относительно документа
- 12. Как сохранить положение прокрутки в режиме прокрутки?
- 13. SharePoint, поддерживающая положение прокрутки
- 14. Не удается получить горизонтальное положение прокрутки
- 15. Получить вертикальное положение прокрутки в Poltergeist
- 16. JQuery: Получить положение прокрутки на странице обновления
- 17. Получить положение прокрутки для установки переменной
- 18. jScrollPane Как сохранить положение прокрутки?
- 19. Как установить положение прокрутки UIScrollView?
- 20. Как сохранить положение прокрутки ListView
- 21. angularjs: как установить положение прокрутки
- 22. Как сохранить положение полосы прокрутки ...?
- 23. Как рассчитать горизонтальное положение прокрутки
- 24. Получить верхнее положение текущего окна относительно тела документа
- 25. GridView положение прокрутки
- 26. PHP поддерживает положение прокрутки
- 27. Задайте положение прокрутки списка
- 28. Хром запоминает положение прокрутки
- 29. Сохранять положение прокрутки страницы
- 30. Поддерживать положение прокрутки дерева
Я был thinkig таким же образом, но почему console.log ($ (это) .scrollTop()) = 1187 console.log ($ (это) .height()) = 1762 Это так сильно отличается? Для 575px, если я прокрутил в нижней части страницы. Где эти 575px ушли? Полоса прокрутки не может быть 576px :) – Somebody
Baaah снова моя ошибка. Я смотрел на полосу прокрутки с открытым окном с защитным стеклом. Ofc теперь может быть 576px. :) Спасибо, что тема закрыта. – Somebody
-1 - Это очень приятно, но не отвечает на вопрос, касающийся 'scrollHeight'. –