Enroller
@Enroller
Немного авантюрист

Как работает событие scroll и ф-я scrollTop?

Здравствуйте

Не могу добиться понимания..

Чтобы отследить отступ от верхнего края нужно слушать document. body, html - просто не реагируют на событие scroll.

$(function(){

$(document).on('scroll', function(){
let offsetTop = $(this).scrollTop();
console.log(offsetTop);
}


Далее чтобы .. ну например заскроллить страницу к началу оказывается что к document обращаться бесполезно.. Он этого просто не поймёт..

Теперь уже надо обратиться к body, html :

$(function() {
    
 $('some_button').on('click', function(){
     $('html,body').scrollTop('0');
 })
});


Вопрос : почему я не могу отследить scrollTop у body или html , но само изменение координаты происходит именно у html,body ?

UPD: Пытался на document повесить animate

$(document).animate({
            scrollTop : 0
        },400);


Потому он и не работал.

Вопрос остаётся: почему же не получается повесить scroll на body,HTML, как работает $() с объектом document?
  • Вопрос задан
  • 239 просмотров
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
оказывается что к document обращаться бесполезно

не правда:
https://codepen.io/wokster/pen/qymgPZ

Вы кстати понимаете что вот тут:
$('html,body').scrollTop('0');
Вы строку '0' передаете, а не число 0.

Ну и собственно
$('html,body') - передана строка с названием элементов
$(document) - передана переменная, в которой объект содержится
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы