Как отрабатывают скрипты в js?

$(window).on('scroll', function(){
console.log('scroll');
});

Вопрос заключается в следующем. При первой загрузке страницы событие scroll не отрабатывает.
Но если немного проскролить страницу и обновить ее, то событие сработает. После обновления страницы событие так же сработает. Но если выполнить жесткую перезагрузку с очисткой кеша, то событие снова не отработает. С чем это связанно и в какую сторону рыть ? Заранее спасибо.
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 4
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
scroll не будет отрабатываться, если смещения страницы не было.
При обновлении страницы все браузеры имеют функцию сохранения позиции страницы, а это смещение в нужную позицию, а значит событие скролла.

Вы можете самостоятельно сгенерировать это событие
$(window).on('scroll', function(){
  console.log('scroll');
}).trigger('scroll');


Или выполнить необходимые действия при загрузке
function onScroll() {
  console.log('scroll');
}
$(window).on('scroll', onScroll);
onScroll();
Ответ написан
Комментировать
@yakupov112
Ответ написан
Комментировать
Jeer
@Jeer
уверенный пользователь
В каком месте вызывается данный код?
Попробуйте встроить его в онлоад:
$(function() {
    $(window).on('scroll', function(){
       console.log('scroll');
    });
});
Ответ написан
Комментировать
DaFive
@DaFive
При первой загрузке страницы скроллбар не крутится - событие не вызывается, все ок.
При повторной загрузке - браузер сам запоминает позицию скролла и докуручивает страницу после ее загрузки. Потому событие скролл есть. Стреляйте событие вручную или после загрузки вызывайте обработчик, отвечающий за логику при прокрутке.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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