Подтвердить что ты не робот

Как отключить Bootstrap "affix" на меньших экранах?

Я использую компонент аффикса на сайте для навигационной панели и хотел бы отключить его на меньших экранах. Я использую метод jquery по сравнению с данными и не могу понять, как отключить его, когда разрешение экрана меньше 767 пикселей. Я попытался захватить ширину окна при изменении размера и прокрутке и либо возвратить false, либо удалить классы аффикса, но это не очень хорошо работает.

if($('#subnav').length){

    $(window).resize(function() {
        var wWidth = $(window).width();
        getSize(wWidth);
    });

    $(window).scroll(function () {
        var wWidth = $(window).width();
        getSize(wWidth);
    });

    function getSize(z){
        if(z <= 767) {
                    // I tried doing return false here, no good.
            $('#subnav').removeClass('affix').removeClass('affix-top');
            $('.nav > li').removeClass('active');
        } else {
            setNav();
        }
    }

    var wWidth = $(window).width();
    getSize(wWidth);

    function setNav (){
        $('#subnav').affix({
            offset: {
            top: 420,
            bottom: 270
            }
        });
        $('#subnav').scrollspy();
    }

}
4b9b3361

Ответ 1

Вы можете сделать это так же, как на странице Bootstrap, только с помощью CSS. Используйте @media queries для определения размера экрана и не устанавливайте положение fixed, если экран находится ниже определенного размера. Например:

@media (min-width: 768px) {
    .affix {
        position: fixed;
    }
}

Это правило будет иметь эффект только в том случае, если ширина экрана больше 768 пикселей.

Вы также можете сделать это наоборот, установите позицию элемента явно на static, если размер экрана меньше определенного размера:

@media (max-width: 767px) {
    .affix {
        position: static;
    }
}

Ответ 2

Исправьте меня, если я ошибаюсь, но попробуйте установить if(z <= 767) { на if(z <= 1) { таким образом, чтобы он не изменился? Если я не упущу точку вашего вопроса.