$ (document) .scrollTop () всегда возвращает 0

Я просто пытаюсь что-то сделать, когда позиция прокрутки страницы достигает определенной высоты. тем не мениеscrollTop() возвращает 0 илиnull независимо от того, как далеко я прокручиваю вниз. Это функция помощи, которую ям, чтобы проверитьscrollTop() Значение: Я

$('body').click(function(){
    var scrollPost = $(document).scrollTop();
    alert(scrollPost);
});

мы пытались прикрепитьscrollTop() чтобы,$('body')$('html') и конечно$(window), но ничего не меняется.

Есть идеи?

 jetlej08 окт. 2012 г., 22:15
Да, я знаю. Эта скрипка работает для меня в Safari, но точная функция на моем сайте каждый раз возвращает 0.
 jetlej08 окт. 2012 г., 22:10
@ Whymarrh - Да, этого достаточно :)
 Denys Séguret08 окт. 2012 г., 21:55
Ваш код работает для меня:jsfiddle.net/ZA7Uj
 Whymarrh08 окт. 2012 г., 22:01
Есть и другие способы определения расстояния сверху,видел здесь, Так, на всякий случай.
 halex08 окт. 2012 г., 21:55
Это'работает вэто jsfiddle с Firefox
 Adam Grant08 окт. 2012 г., 21:53
Не ответ, но примечание ... Я обычно использую плагин путевых точек jQuery для подобных вещей.getkickstrap.com/apps/waypoints-987090
 Whymarrh08 окт. 2012 г., 22:08
@jetlej Ненавижу спрашивать, но достаточно ли у вашей страницы контента для прокрутки? Может быть, расстояние от вершиныявляется 0.
 Venkatesh Nadar27 апр. 2016 г., 00:20
Я думаю, @jetlej ответ должен быть принят.
 jetlej08 окт. 2012 г., 21:55
Я действительно неЯ не хочу использовать скрипт для замены чрезвычайно простой функции JavaScript.
 jetlej08 окт. 2012 г., 21:58
Тот'почему это так расстраивает - нетМного вариаций, которые могут испортить этот код. Это'твердая и все же нет работа!
 Whymarrh08 окт. 2012 г., 22:13
Тот'странный Выше у @dystroy есть рабочая версия.Это работает для меня, и здесьчто яЯ бегу.
 jetlej08 окт. 2012 г., 22:06
@ Whymarrh - яЯ также использую Chrome на OSX. Я'Мы также попробовали это в FF и Safari.
 Denys Séguret08 окт. 2012 г., 21:59
Попробуйте сделать минимальный пример. Если ты можешь'сделать это снизу, попробуйте удалить все, что вы можете удалить со своей страницы, пока вы небольше нет ошибки. И, конечно, дебют, чтобы увидеть, что происходит вvar scro... линия.
 Zeta08 окт. 2012 г., 22:47
@jetlej: "но точная функция на моем сайте каждый раз возвращает 0, В этом случае ваш сайт необеспечить ту же среду для этой функции. Пожалуйста, предоставьте либо ссылку на ваш сайт, либо намного больше кода.
 Whymarrh08 окт. 2012 г., 21:59
@jetlej может помочь некоторая информация о вашей среде. Кажется, что ваш код работает для некоторых (включая меня - Chrome на OS X). С какой ОС / браузером вы работаете?

Ответы на вопрос(7)

после попытки некоторых из вышеперечисленных и неt включает изменение любого CSS:

var scroll_top = Math.max( $("html").scrollTop(), $("body").scrollTop() )

Это работает в современных версиях Chrome, Firefox, IE и Edge. '

 felwithe20 мар. 2019 г., 18:44
htmlСкроллтоп работал на меня. Больше ничего не делал, дажеbodys. Я также использую Bootstrap 4, и я понятия не имею, что это такоеделает на страницу за кулисами.

Кстати, похоже, что вы должны использовать

$("body").scrollTop()

вместо

$(".some-class").scrollTop

Вот почему я застрял.

Решение Вопроса

100% из моего HTML и теги тела исправили эту проблему.

Я надеюсь, что это помогает кому-то еще!

 Stuart P. Bentley08 окт. 2015 г., 13:33
Это вызвано ошибкой в Chrome, которая должна быть исправлена очень скоро:code.google.com/p/chromium/issues/detail?id=157855
 Anthony14 мая 2018 г., 04:30
что вы установили? для меняbody установлен вheight: auto что я считаю, также портит это: /
 Stuart P. Bentley08 окт. 2015 г., 13:39
Для тех из нас, кто не использует jQuery, я рекомендую использоватьwindow.scrollY вместо.
 jwaern24 авг. 2014 г., 14:00
Простое решение этой проблемы - установить max-height для body и html вместо height.
 Guy Park21 нояб. 2017 г., 00:04
просто примечание стороны; Я'мы нашлиscrollTop() быть непоследовательным в разных браузерах и может быть изведено с помощью макета HTML. Кажется, ваш 100% рост, вероятно, потому что элемент внутри вашегоBODY тег прокручивал, а неBODY сам тег Итак, как только вы сделали ваше тело в полный рост, прокрутка произошла на том, что затем сделал вашscrollTop используемый.

нимания к конкретному элементу на странице. Я использовал другой подход, чтобы сделать это.

document.getElementById (»elementID») .ScrollIntoView ();

Хорошо работает на мобильных устройствах, планшетах и компьютерах.

У меня была такая же проблема с scroll = 0 в:

document.body.scrollTop

В следующий раз используйте

document.scrollingElement.scrollTop

Изменить 01.06.2018

Если вы используетеevent тогда вы получили объект, который имеетdocument элемент вtarget или же .srcElementВот таблица, показывающая операцию прокрутки в разных браузерах.

Как вы можете видеть, Firefox и IE неиметьsrcElement и IE 11 не 'т поддержки.scrollingElement

 Verri14 мая 2018 г., 14:20
Я нене знаю, теперь ям используюdocumentElement вместоscrollingElement и это работает;) я
 Anthony14 мая 2018 г., 04:29
являетсяdocument.scrollingElement.scrollTop мобильный дружественный ?!
 Anthony14 мая 2018 г., 19:47
У меня возникли такие проблемы, реализующие эту функцию снова. я'мы сделали это в прошлом успешно, и теперь яЯ сталкиваюсь с таким количеством осложнений. не могли бы вы взглянуть наэтот вопрос, который я отправил на SO чтобы увидеть, если вы видите что-то не так с тем, что яя делаю?

height: 100%; из HTML и теги тела могут решить эту проблему.

Причина:

Причина в том, что вы могли бы установить 100% как значение свойства height html и элементов body. Если вы установите для свойства height элементов html и body значение 100%, они получат высоту, равную document ’высота

Видеть это:https://www.dawoodnajam.tech/blog/2017/11/17/jquery-scrolltop-returns-0/

 LW00119 нояб. 2017 г., 12:28
Хотя это может теоретически ответить на вопрос,было бы предпочтительнее включить основные части ответа здесь и предоставить ссылку для справки.
 Dawood Najam12 апр. 2019 г., 18:18
@ sp00n I 'Я собираюсь удалить ссылку. Необходимая информация об этой странице уже написана здесь.
 Andreas Baumgart06 апр. 2018 г., 10:55
Ссылка мертва.
 sp00n10 апр. 2019 г., 00:27
И страница снова вниз.
 Dawood Najam08 апр. 2018 г., 16:03
@AndreasBaumgart Я обновил ссылку сейчас.

а не с документом или телом. Чтобы этот метод работал, вы должны добавить высоту и стиль переполнения для вашего блока:

#scrollParag {
    height: 500px;
    overflow-y: auto;
}

А потом:

var scrolParag = document.getElementById('scrollParag');
 alert(scrolParag.scrollTop); // works!

Ваш ответ на вопрос