2012-03-28 2 views
4

Как и в описанной проблеме here, в определенных ситуациях $(window).scrollTop() будет отключен одним в Firefox.scrollTop выключен на 1 пиксель в Firefox

Я использую это, чтобы обнаружить, если вертикальная полоса прокрутки достигла дна:

if ($(window).scrollTop() == $(document).height() - $(window).height()) 
{ 
    // bottom reached 
} 

Это работает. Но я просто случайно обнаружил, что он работает только в большинстве случаев. Вот журнал из случая, когда он идет не так. scrollTop говорит, что я прокрутил 611 пикселей, difference говорит, что я могу прокручивать 612 пикселей.

scrollTop: 611 
doc height: 933 
win height: 321 
difference: 612 

С кодом что-то не так? Или это проблема с Firefox? В последнем случае, я думаю, я могу изменить его, чтобы проверить, осталось ли 5 ​​или менее пикселей. Но если код неправильный, я бы хотел его исправить.

+0

Не можете просто написать: 'если ($ (окно) .scrollTop()> = $ (документ) .height() - $ (окно) .height()) {...} '? – meeDamian

+0

@ chester1000 Нет, потому что если вы посмотрите на значения, 'scrollTop' <' difference'. – Stijn

+2

Как раз мысль, это может быть вызвано подпиксельным рендерингом. http://blogs.msdn.com/b/ie/archive/2012/02/17/sub-pixel-rendering-and-the-css-object-model.aspx?Redirected=true –

ответ

1

использование ниже код работает

if ($(window).scrollTop() >= ($(document).height() - $(window).height()-1)) 
+0

Спасибо за ответ, хотя это временное решение, подобное описанному в вопросе. – Stijn

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