gpt4 book ai didi

javascript - 单击展开导航

转载 作者:行者123 更新时间:2023-11-28 08:17:40 24 4
gpt4 key购买 nike

我遇到的问题是,当我点击一个按钮时,我希望导航展开,但它现在所做的是它看起来有点漂浮在其余部分之上。或者它是在它下面创建的另一个 div。

为了更清楚地了解正在发生的事情,我建议您运行该代码段,因为我很难解释真正发生的事情。

此问题仅与移动菜单相关。

我也使用 bootstrap css,但是那只会影响 <div class="container"> .

我已经尝试解决的问题是:

  • 删除了 Bootstrap css
  • 更改了 <nav>到一个 div 元素
  • 将所有位置更改为相对位置
  • 改变了一些关于 float 的东西

所以这是我使用的代码中最重要的部分。

/*JS for the hide/show of the menu*/
$(document).ready(function() {
$(".menu-trigger").click(function() {
$(".menu").slideToggle(400, function() {
$(this).toggleClass("nav-expanded").css('display', '');
});
});
});
/*JS for the dropdown in the menu*/
$(document).ready(function () {
$("li").click(function () {
$('li > ul').not($(this).children("ul").slideToggle()).hide();
});
});
body{
background-color: white;
}
.container{
background-color: #919191;
box-shadow: 0px 0px 2px black;
}
nav {
background: #7D7D7D;
border-radius: 4px;
box-shadow: 0px 0px 2px #303030;
color: #000000;
font-family: Arial, Helvetica, sans-serif;
font-size: 15px;
height: 40px;
margin: 2px 10px;
}
nav ul, li, a {
margin: 0;
padding: 0;
}
nav a, a:link, a:visited, a:hover{
text-decoration: none;
color: white;
display: block;
}
ul > li {
list-style: none;
float: left;
}
ul > li a {
color: #fff;
font-weight: bold;
line-height: 40px;
height:40px;
display:block;
padding:0px 10px;
}
nav ul li a:hover{
border-radius: 4px;
background: #666666;
display: block;
}
nav ul li ul {
background: #333333;
border-radius: 4px;
box-shadow: 0px 0px 2px #303030;
display: none;
position: absolute;
z-index:100;
}
nav ul li ul li {
float: none;
line-height: 40px;
width: 150px;
}
.menu-trigger{
display: none;
}
.burger{
background-color: white;
display: block;
width: 22px;
height: 2px;
border-radius: 1px;
margin: 5px auto;
}
@media screen and (max-width: 760px){
.menu-trigger{
display: block;
background-color: #BFBFBF;
border-radius: 4px;
box-shadow: 0px 0px 2px #303030;
height: 35px;
padding: 5px 5px;
margin: 3px 10px;
width: 40px;
}
.nav-expanded{
display: block;
}
nav ul{
display: none;
background: #7D7D7D;
border-radius: 0 0 4px 4px;
}
nav ul li{
float: none;
padding: 0;
}
nav ul li:first-child{
margin-top: 5px;
}
nav ul li ul {
background: #7D7D7D;
box-shadow: none;
display: none;
position: relative;
z-index:0;
}
nav ul li ul li {
line-height: 35px;
width: 100%;
}
}
.active{
border-radius: 4px;
background-color: #404040;
}
<html>
<head>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">

<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap-theme.min.css">

<title></title>
</head>
<body>
<div class="container">
<header>
<nav>
<button class="menu-trigger">
<span class="burger"></span>
<span class="burger"></span>
<span class="burger"></span>
</button>
<ul class="menu">
<li class="active"><a href="#">Link</a>
</li>
<li><a href="#">Link 2</a>
</li>
<li class="dropdown-trigger"><a href="#">Dropdown<span class="caret"></span></a>
<ul>
<li><a href="#">Link</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
</ul>
</li>
<li><a href="#">Link 3</a>
</ul>
</nav>
</header>
</div>
<!-- jQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
</body>
</html>

预先感谢您的帮助。

如果有什么不清楚的地方,请询问,也许我可以说得更清楚。另外,如果帖子有问题,我想听听。

最佳答案

查看DEMO here

“导航”的固定高度为 40 像素,边框半径为 4 像素,这使得它不会扩展并且看起来像一个单独的元素,即使扩展列表在其中也是如此。你需要做的是给它一个自动高度,让它的高度等于所有子元素的高度。

查看演示,如果您只需要这个,请告诉我。

关于javascript - 单击展开导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28914153/

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