Задать вопрос
Sc0undRel
@Sc0undRel

Почему блок неправильно фиксируется при прокручивании?

Пример: https://expert-obzor.ru/antutu-benchmark-rejting-s...

Иногда (не всегда!) открываю страницы сайта и при прокрутке блок справа начинает фиксироваться, но не сверху экрана, а где-то посередине.
Если обновить страницу, то блок становится на нужное место сверху.

Реализуется данное фиксирование при помощи следующего кода:
<script type="text/javascript">
    jQuery(document).ready(function () {
            var offset = $('#toc-widget-2').offset();
            var topPadding = 0;
            $(window).scroll(function() {
                    if ($(window).scrollTop() > offset.top) {
                            $('#toc-widget-2').stop().css({marginTop: $(window).scrollTop() - offset.top + topPadding});
                    }
                    else {
                            $('#toc-widget-2').stop().css({marginTop: 20});
                    }
            });
    });
    </script>


Подскажите, пожалуйста, в чём может быть причина? Что мешает правильно вычислять отступ сверху?
  • Вопрос задан
  • 182 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 2
iiiBird
@iiiBird Куратор тега CSS
Пока ты спишь - твой конкурент совершенствуется
на load функцию тоже засунь
<script type="text/javascript">
jQuery(document).ready(function () {
    var offset = $('#toc-widget-2').offset();
    var topPadding = 0;
    $(window).scroll(function() {
        fixSide();
    });
});

$(window).on('load' function() {
    var offset = $('#toc-widget-2').offset();
    var topPadding = 0;
    fixSide();
});

function fixSide() {
    if ($(window).scrollTop() > offset.top) {
        $('#toc-widget-2').stop().css({marginTop: $(window).scrollTop() - offset.top + topPadding});
    }
    else {
        $('#toc-widget-2').stop().css({marginTop: 20});
    }
}
</script>
Ответ написан
Комментировать
agmegadeth
@agmegadeth
Веб-разработчик в дизайн студии
offset считается при готовности дома, но не при загрузке контента, типа изображений , которые могут повлиять на этот офсет. Обновляй его хотя бы по window load
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект