Закрытие меню при нажатии на экран или другую кнопку - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть два вертикальных меню и две кнопки.Каждое меню открывается и закрывается только при нажатии на его кнопку.

Но мне бы хотелось, чтобы при нажатии на кнопку "showLeft" меню "showRight" было скрыто.

И если я щелкну в любом месте на мониторе, два меню закроются.

<button id="showLeft">Show/Hide Left Slide Menu</button>
<button id="showRight">Show/Hide Right Slide Menu</button>

<script>
    var menuLeft = document.getElementById( 'cbp-spmenu-s1' ),
        menuRight = document.getElementById( 'cbp-spmenu-s2' ),
        body = document.body;

    showLeft.onclick = function() {
        classie.toggle( this, 'active' );
        classie.toggle( menuLeft, 'cbp-spmenu-open' );
        disableOther( 'showLeft' );

    };
    showRight.onclick = function() {
        classie.toggle( this, 'active' );
        classie.toggle( menuRight, 'cbp-spmenu-open' );
        disableOther( 'showRight' );
    };


    function disableOther( button ) {
        if( button !== 'showLeft' ) {
            classie.toggle( showLeft, 'disabled' );
        }
        if( button !== 'showRight' ) {
            classie.toggle( showRight, 'disabled' );
        }
    }           

    var topNavBar = 50;
    var footer = 48;
    var height = $(window).height();
    $('.cbp-spmenu').css('height', (height - (topNavBar+footer)));

    $(window).resize(function(){
        var height = $(window).height();
        $('.cbp-spmenu').css('height', (height - (topNavBar+footer)));
    });


</script>

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Рабочая скрипка .

Вам нужно удалить класс cbp-spmenu-open другого меню, когда вы щелкнете как:

showLeft.onclick = function() {
  classie.toggle(this, 'active');
  classie.toggle(menuLeft, 'cbp-spmenu-open');
  classie.remove(menuRight, 'cbp-spmenu-open');
};

showRight.onclick = function() {
  classie.toggle(this, 'active');
  classie.toggle(menuRight, 'cbp-spmenu-open');
  classie.remove(menuLeft, 'cbp-spmenu-open');
};
0 голосов
/ 20 сентября 2018

Поскольку нет объекта с именем showLeft или showRight, вы имели в виду menuLeft.onclick и menuRight.onclick вместо showLeft.onclick и showRight.onclick соответственно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...