jQuery исправил мерцание боковой панели при прокрутке - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь сделать заголовок и боковую панель липкими при прокрутке.В шапке торчит нормально.Боковая панель тоже прилипает, но постоянно мигает.Я где-то читал, что это связано с ошибкой Chrome, но проблема универсальна.

Когда я пытаюсь выполнить отладку с помощью инструментов разработчика, я вижу, что класс "sticky" постоянно добавляется и удаляется в боковую панель, в отличие от заголовка.

Любые идеи будут высоко оценены.

JS:


    function ScrollFunc() {
        /* navbar */
        if (window.pageYOffset >= (jQuery('#nav-wrapper').height()) {
            jQuery('#nav-wrapper').addClass("sticky");
        } else {
            jQuery('#nav-wrapper').removeClass("sticky");
        }

        /* sidebar */
        if (window.pageYOffset >= (jQuery("#sidebar").offset().top + jQuery("#sidebar').height())) {        
            jQuery('#sidebar').addClass('sticky');
        } else {
            jQuery('#sidebar').removeClass("sticky");
        }
    }

CSS:


    .sticky {
        position: fixed;
        top: 0;
    }

1 Ответ

0 голосов
/ 04 декабря 2018

Исправлено:

jQuery(window).load(function() {
    crazyOffset = jQuery('#sidebar').offset().top + jQuery('#sidebar').height();
});

function ScrollFunc() {
    /* navbar */
    if (window.pageYOffset >= (jQuery('#nav-wrapper').height()) {
        jQuery('#nav-wrapper').addClass("sticky");
    } else {
        jQuery('#nav-wrapper').removeClass("sticky");
    }

    /* sidebar */
    if (window.pageYOffset >= crazyOffset) {        
        jQuery('#sidebar').addClass('sticky');
    } else {
        jQuery('#sidebar').removeClass("sticky");
    }
}
...