Подтвердить что ты не робот

JQuery scrollTop() не работает над элементом body в Firefox

Я не понимаю, почему функция jquery scrollTop() не работает над элементом body в Firefox.

$('body').scrollTop(0);

Я исправил свою проблему, используя:

$(window).scrollTop(0);

Однако согласно документации jquery scrollTop() должен работать со всеми элементами, как в этом примере:

$( "div.demo" ).scrollTop( 300 );

Я также тестировал с помощью "nav" и "main", но он также не работает.

4b9b3361

Ответ 1

Свиток

$(window).scrollTop(0);, похоже, поддерживается всеми браузерами IE9 + (может быть, IE8, но я больше не тестирую).

Анимированная прокрутка

Если вы хотите оживить свиток, jQuery возвращает ошибку, если используется объект window (проверен 1.11.2). Вместо этого, чтобы оживить свиток, лучше использовать как html, так и body для включения движков, которые используют один из них. Итак:

$('html, body').animate({scrollTop:0},500); будет прокручиваться до верхней части браузера за полсекунды.

Позиция прокрутки

Вы не можете использовать $('html,body').scrollTop(), чтобы найти текущую позицию прокрутки страницы - по крайней мере, Chrome не поддерживает это (всегда возвращает 0). Вместо этого, чтобы последовательно находить положение прокрутки страницы, необходимо использовать $(window).scrollTop();.

Ответ 2

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

$(window).scrollTop();

Ответ 3

попробуйте следующее:

ваш div для прокрутки:

<div id="top"></div>

и прокрутите верхнюю часть js:

$('html,body').animate({scrollTop: $('#top').offset().top},'slow');