document.body.scrollTop всегда равен 0 в IE даже при прокрутке - PullRequest
62 голосов
/ 27 апреля 2010

Я показываю значение document.body.scrollTop в строке состояния при перемещении мыши. Значение всегда 0 в IE. Почему всегда 0? Есть ли другой способ узнать, сколько сдвинулась полоса прокрутки?

Ответы [ 3 ]

115 голосов
/ 27 апреля 2010

Вы можете попробовать это для более старого типа документа в IE:

var top = (document.documentElement && document.documentElement.scrollTop) || 
              document.body.scrollTop;
14 голосов
/ 19 июня 2012

эта функция обеспечивает кросс-браузерную реализацию чтения смещения прокрутки:

function posTop() {
            return typeof window.pageYOffset != 'undefined' ? window.pageYOffset: document.documentElement.scrollTop? document.documentElement.scrollTop: document.body.scrollTop? document.body.scrollTop:0;
        }
10 голосов
/ 27 апреля 2010

В зависимости от DOCTYPE вам придется использовать document.body.scrollTop или document.documentElement.scrollTop. Вы пробовали второй?

Вы можете сделать что-то вроде этого:

var scrollTop = document.documentElement ? document.documentElement.scrollTop :
                                           document.body.scrollTop;

Я столкнулся с этими ссылками во время исследования вашей проблемы:

Это может помочь вам немного больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...