简体   繁体   English

在侧边栏菜单上显示覆盖打开

[英]Showing overlay on sidebar menu open

I want to show an overlay when then sidebar menu opens. 我想在侧边栏菜单打开时显示一个覆盖图。 And close the menu when the overlay is clicked. 单击叠加层并关闭菜单。

here is what i've done: 这是我所做的:

 $(document).ready(function() {

    $('#menu-toggle').click(function(e) {
      e.preventDefault();
      $('#wrapper').toggleClass('toggled');
      $('#overlay').toggle();
    });

    $('#overlay').click(function() {
      $('#overlay').hide('200');
      $('#wrapper').removeClass('toggled');
    });
  });


#overlay {
  position: fixed;
  z-index: 999;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: none;
  background-color: rgba(0,0,0,.5);
}

here is the demo - https://jsbin.com/vasisedoha/edit?css,js,output 这是演示-https: //jsbin.com/vasisedoha/edit? css, js,输出

my code is working fine. 我的代码工作正常。

I'm stuck at making the animation look good. 我一直坚持让动画看起来不错。 Please help me fix the animation effect. 请帮助我修复动画效果。

I want android lollipop, material design type effect. 我想要android棒棒糖,材料设计类型效果。

Try the below, 试试下面的,

You can use jQuery fadeIn and fadeToggle functions 您可以使用jQuery fadeInfadeToggle函数

  $(document).ready(function() { $('#menu-toggle').click(function(e) { e.preventDefault(); $('#wrapper').toggleClass('toggled'); $('#overlay').fadeToggle( "slow", "swing" ); }); $('#overlay').click(function() { $('#overlay').fadeOut('slow'); $('#wrapper').removeClass('toggled'); }); }); 
 /*! * Start Bootstrap - Simple Sidebar HTML Template (http://startbootstrap.com) * Code licensed under the Apache License v2.0. * For details, see http://www.apache.org/licenses/LICENSE-2.0. */ /* Toggle Styles */ #wrapper { padding-left: 0; -webkit-transition: all 0.5s ease; -moz-transition: all 0.5s ease; -o-transition: all 0.5s ease; transition: all 0.5s ease; } #wrapper.toggled { padding-left: 250px; } #sidebar-wrapper { z-index: 1000; position: fixed; left: 250px; width: 0; height: 100%; margin-left: -250px; overflow-y: auto; background: #000; -webkit-transition: all 0.5s ease; -moz-transition: all 0.5s ease; -o-transition: all 0.5s ease; transition: all 0.5s ease; } #wrapper.toggled #sidebar-wrapper { width: 250px; } #page-content-wrapper { width: 100%; position: absolute; padding: 15px; } #wrapper.toggled #page-content-wrapper { position: absolute; margin-right: -250px; } /* Sidebar Styles */ .sidebar-nav { position: absolute; top: 0; width: 250px; margin: 0; padding: 0; list-style: none; } .sidebar-nav li { text-indent: 20px; line-height: 40px; } .sidebar-nav li a { display: block; text-decoration: none; color: #999999; } .sidebar-nav li a:hover { text-decoration: none; color: #fff; background: rgba(255,255,255,0.2); } .sidebar-nav li a:active, .sidebar-nav li a:focus { text-decoration: none; } .sidebar-nav > .sidebar-brand { height: 65px; font-size: 18px; line-height: 60px; } .sidebar-nav > .sidebar-brand a { color: #999999; } .sidebar-nav > .sidebar-brand a:hover { color: #fff; background: none; } @media(min-width:768px) { #wrapper { padding-left: 250px; } #wrapper.toggled { padding-left: 0; } #sidebar-wrapper { width: 250px; } #wrapper.toggled #sidebar-wrapper { width: 0; } #page-content-wrapper { padding: 20px; position: relative; } #wrapper.toggled #page-content-wrapper { position: relative; margin-right: 0; } } body {padding-top: 51px;} #overlay { position: fixed; z-index: 999; top: 0; right: 0; bottom: 0; left: 0; display: none; background-color: rgba(0,0,0,.5); } 
 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <div class='navbar navbar-default navbar-fixed-top'> <div class='navbar-header'> <button class='navbar-toggle pull-left' data-toggle='collapse' id='menu-toggle' type='button'> <span class='icon-bar'></span> <span class='icon-bar'></span> <span class='icon-bar'></span> </button> <a class='navbar-brand' href='#'>Simple Sidebar</a> </div> </div> <div id="wrapper"> <!-- Sidebar --> <div id="sidebar-wrapper"> <ul class="sidebar-nav"> <li class="sidebar-brand"> <a href="#"> Start Bootstrap </a> </li> <li> <a href="#">Dashboard</a> </li> <li> <a href="#">Shortcuts</a> </li> <li> <a href="#">Overview</a> </li> <li> <a href="#">Events</a> </li> <li> <a href="#">About</a> </li> <li> <a href="#">Services</a> </li> <li> <a href="#">Contact</a> </li> </ul> </div> <!-- /#sidebar-wrapper --> <div id='overlay'></div> <!-- Page Content --> <div id="page-content-wrapper"> <div class="container-fluid"> <div class="row"> <div class="col-lg-12"> <h1>Simple Sidebar</h1> <p>This template has a responsive menu toggling system. The menu will appear collapsed on smaller screens, and will appear non-collapsed on larger screens. When toggled using the button below, the menu will appear/disappear. On small screens, the page content will be pushed off canvas.</p> <p>Make sure to keep all page content within the <code>#page-content-wrapper</code>.</p> <a href="#menu-toggle" class="btn btn-default" id="menu-toggle">Toggle Menu</a> </div> </div> </div> </div> <!-- /#page-content-wrapper --> </div> <!-- /#wrapper --> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM