BonBonSlick
@BonBonSlick
Web Developer Trainee

JQuery scroll() и scrollTop() рабочие?

У меня не работает никакой из кода ниже, последний jQuery, подключен в шапке, код в футере:

И даже ничего отсюда не работает
https://stackoverflow.com/questions/1144805/scroll...
Никаких ошибок в консоли.

Вот так работает:
<i class="fa fa-arrow-circle-up go_top"></i>


$('body').scroll(function () {
       alert($('body').scrollTop() );
    });

Однако никакие другие ивенты скролла не отрабатывают, не выходит подсчитать сколько прокрутил, всегда вернет 0. Не пойму, почему никакой ивент из предложенных со стека и офф доков у меня не отрабатывает. Весь код находиться в куске $(document).ready();

Проверял в Мозиле и Хроме. не работает в Хроме, причина в нем. Вообще, не пойму $(window).scroll() и в мозиле не работает, как и в хроме, а вот ивент скролла в том как на чистом JS так и на jQuery работает только в МОзиле, в Хроме вообще все глухо.
Кеш чистил, пробовал так же поставить ивенты на кнопки, пока все так же.
Пробовал через debugger; в скрипте, и отследить, удивительно, в отладчике показывает что скрипт отрабатывает, в него заходит и он проходит хорошо. Визуально, скролла нет. Это что косательно этого куска кода:
$('.go_top').click(function () {
                debugger;
                $("html, body").animate({ scrollTop: 0 }, "slow");
                return false;
            });

Mozila его выполняет, Хром нет.

Пример отсюда не отрабатывает нигде, ошибок в консоли - нет.
https://www.w3schools.com/howto/howto_js_scroll_to...

Что делаю не так?
  • Вопрос задан
  • 11974 просмотра
Решения вопроса 3
@ilyapashkov02
Frontend Developer
$(window).scroll(function () {
       alert($('body').scrollTop() );
});


Ты скроллишь window а не body
Ответ написан
@ClaraOswald
все прекрасно работает.
https://jsfiddle.net/4u1xmach/

вот более наглядный и менее наркоманский пример:
https://jsfiddle.net/4u1xmach/1/
Ответ написан
BonBonSlick
@BonBonSlick Автор вопроса
Web Developer Trainee
Ошибка была в CSS стилях, было:
html, body {
    min-width: 100%;
   min-height: 100%;
    margin: 0px;
    padding: 0px;
    overflow-x: hidden;
}


Стало:
html{
    min-width: 100%;
    min-height: 100%;
    overflow-x: hidden;
}
html, body {
    margin: 0px;
    padding: 0px;
}


Проблемма в том, что скролл не засчитывался, так как высота тела стояла все время 100% все бы ничего, если бы она не равнялась высоте всего окна. Вот и получилось, что высота блока который я скролил, всегда был равен высоте окна, и ивент скролла возвращал высоту 0, или вообще ничего, в зависимости от браузера. Всем спасибо кто старался)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы