gpt4 book ai didi

javascript - Bootstrap 侧面切换菜单,单击时关闭

转载 作者:行者123 更新时间:2023-12-03 04:47:05 25 4
gpt4 key购买 nike

我想使用https://startbootstrap.com/template-overviews/simple-sidebar/向我的网站添加侧边菜单,但我想添加功能,以便单击时菜单将关闭。这是我的代码

<script>
jQuery(document).ready(function($) {
$("#menu-toggle").click(function(e) {
e.preventDefault();
$("#wrapper").toggleClass("toggled");

$("#page-content-wrapper").click(function(ev){
ev.preventDefault();
$("#menu-toggle").click();
$(this).off(ev);
});

});


});
</script>

并尝试这样做

 <script>
jQuery(document).ready(function($) {
$("#menu-toggle").click(function(e) {
e.preventDefault();
$("#wrapper").toggleClass("toggled");

$("#page-content-wrapper").click(function(ev){
ev.preventDefault();
$(this).off(ev);
console.log($("#wrapper"));
if( $( "#wrapper" ).hasClass('.toggled') ) {
$("#menu-toggle").click();
}

});

});


});
</script>

但这两种方法都没有显示出我想要的结果

最佳答案

您可以使用下面的代码块来实现确保您的 BodyWrapper 的高度为 100% 使其工作,否则它将不会触发任何点击事件。

您只需在 Body 或父 Div 上绑定(bind)一个点击事件,并在其中检查单击的元素不是菜单 sidebar-wrapper 的 ID,并且Toogle 按钮菜单切换

$('#wrapper').click(function(evt){
if(evt.target.id == "sidebar-wrapper" || evt.target.id == "menu-toggle" )
return false;
$("#menu-toggle").click();


});

更新

查找更新的代码片段

/* Latest compiled and minified JavaScript included as External Resource */   jQuery(document).ready(function($) {
$("#menu-toggle").click(function(e) {
e.preventDefault();
$("#wrapper").toggleClass("toggled");

});

$('#wrapper').click(function(evt){
if(evt.target.id == "sidebar-wrapper" || evt.target.id == "menu-toggle" )
return false;
$("#wrapper").removeClass("toggled");


});






});
/*!
* Start Bootstrap - Simple Sidebar (http://startbootstrap.com/)
* Copyright 2013-2016 Start Bootstrap
* Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap/blob/gh-pages/LICENSE)
*/

body {
overflow-x: hidden;
}

/* 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: 0;
}

#wrapper.toggled {
padding-left: 250px;
}

#sidebar-wrapper {
width: 0;
}

#wrapper.toggled #sidebar-wrapper {
width: 250px;
}

#page-content-wrapper {
padding: 20px;
position: relative;
}

#wrapper.toggled #page-content-wrapper {
position: relative;
margin-right: 0;
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<body>

<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 -->

<!-- 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>

关于javascript - Bootstrap 侧面切换菜单,单击时关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42825920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com