2014-09-02 3 views
0

это, наверное, что-то глупое, но я не могу найти то, что я делаю неправильно. Я пытаюсь создать элемент DOM, когда тело прокручивается до определенной высоты. Поэтому я установил eventlistener в окне, чтобы проверить прокрутку, и я проверяю scrollTop тела, чтобы получить прокрутку.Почему scrollTop не работает в firefox?

Это прекрасно работает в Chrome, но в Firefox scrollTop всегда остается 0, независимо от того, что я пытаюсь. Я также пробовал проверять scrollTop других элементов, но это тоже не регистрируется. Я не могу найти документацию по scrollTop, которая объясняет, как это работает в разных браузерах. Кто-нибудь знает, почему это не работает в Firefox? Или я просто делаю это глупо?

(function() { 

    var element = document.getElementById("body"); 

    window.addEventListener('scroll', function (e){ 
     var scrollPos = element.scrollTop; 
     console.log(scrollPos); 
    }); 
})() 

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

+0

Insted из 'document.getElementById ("тело")', попробуйте 'document.getElementById ("HTML")'. – Vucko

+0

Серьезно? Я бы никогда не догадался. Можете ли вы рассказать о том, почему это проблема для Firefox? – iamrobin

+0

И это отменяет проблему. Проверка html для scrollTop не работает в Chrome: P. – iamrobin

ответ

0

Обнаружил альтернативный способ сделать это. Я проверяю window.pageYOffset вместо scrollTop элемента. В качестве дополнительного бонуса: это сохраняет запрос DOM для получения определенного элемента для проверки.

Кредиты парню, который ответил на это: Wrap the document or window object to check scroll value?

Смежные вопросы