How to change the color of the toggle button, only my collapse opens in my navbar boot block 3

When we open a fault, the button changes color. but when we close the collapse by pressing the button, the button will not return to its original color. The button focuses. And I want this to lose focus.

I tried css: focus, but it did not lose focus after the crash was closed with a button. I think a jquery function is necessary, although I tried, my js skills should not be sufficient.

I need help please

Demo

My HTML is:

    <div class="wrapper">
  <div class="navbar navbar-default" role="navigation">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">Project name</a>
        </div>
        <div class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li class="active"><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
              <ul class="dropdown-menu">
                <li><a href="#">Action</a></li>
                <li><a href="#">Another action</a></li>
                <li><a href="#">Something else here</a></li>
                <li class="divider"></li>
                <li class="dropdown-header">Nav header</li>
                <li><a href="#">Separated link</a></li>
                <li><a href="#">One more separated link</a></li>
              </ul>
            </li>
          </ul>
          <ul class="nav navbar-nav navbar-right">
            <li class="active"><a href="./">Default</a></li>
            <li><a href="../navbar-static-top/">Static top</a></li>
            <li><a href="../navbar-fixed-top/">Fixed top</a></li>
          </ul>
        </div><!--/.nav-collapse -->
      </div>

</div>

My CSS code is:

.wrapper {width:100%, height:100%;} 

My jQuery function:

    $(document).ready(function () {
    function CloseNav() {
        $(".navbar-collapse").stop().animate({'height': 0},300, function () {
            $('.navbar-collapse').removeClass('in').addClass("collapse");
        });
        $(".navbar-toggle").stop().removeClass('collapsed');
    }

    $('html').click(function (event) {
        var clickover = $(event.target);
        var _opened = $(".navbar-collapse").hasClass("navbar-collapse in");
        if (_opened === true && !clickover.hasClass("navbar-toggle")) {
            CloseNav();
        }

    });
});
+4
source share
2 answers

, focus , , , . :

, hover focus :

.highlight {background:#ddd}

JQuery, click :

$('.navbar-toggle').click(function() {
      $(this).toggleClass('highlight').blur();
});

, , , :

if (_opened === true && !clickover.hasClass("navbar-toggle")) {
     $('.navbar-toggle').toggleClass('highlight'); /**Add This**/
     CloseNav();
}

-

+4

CSS... a JS Fiddle

.navbar-default button.navbar-toggle.collapsed:focus,
.navbar-default button.navbar-toggle.collapsed{ background-color: transparent;
    -webkit-transition:all .4s;
    -moz-transition:all .4s;
    -ms-transition:all .4s;
    -o-transition:all .4s;
    transition:all .4s;
}
.navbar-default button.navbar-toggle:focus,
.navbar-default button.navbar-toggle.collapsed:hover{ background-color:#ddd;
    -webkit-transition:all .4s;
    -moz-transition:all .4s;
    -ms-transition:all .4s;
    -o-transition:all .4s;
    transition:all .4s;
}
+3

Source: https://habr.com/ru/post/1523530/


All Articles