jquery - 滑动导航菜单的位置始终在标题下方
问题描述
我有以下jQuery
菜单,您也可以在JSfiddle
此处找到:
$(document).ready(function () {
$(".navigation_button").on('click', function () {
var $panel = $(this).next('.panel');
if ($panel.is(':visible')) {
$panel.add($panel.find('.panel')).slideUp(500).removeClass('active');
} else {
$panel.slideDown(500).addClass('active');
}
});
});
body {
margin: 0;
}
.header {
width: 80%;
height: 20%;
margin-left: 10%;
display: flex;
justify-content: space-between;
position: fixed;
top: 0;
box-sizing: border-box;
border-style: solid;
border-width: 1px;
background-color: yellow;
}
.image {
width: 30%;
height: 100%;
box-sizing: border-box;
border-style: solid;
border-width: 1px;
background-color: green;
}
/* Navigation Mobile */
.navigation {
width: 70%;
height: 100%;
box-sizing: border-box;
border-style: solid;
border-width: 1px;
background-color: aqua;
}
.navigation>nav {
}
.navigation>nav>ul {
list-style: none;
margin: 0;
padding: 0;
}
.navigation>nav>ul li a {
display: block;
text-decoration: none;
color: black;
}
/* Navigation Button */
.navigation_button {
width: 20%;
height: 60%;
float: right;
cursor: pointer;
box-sizing: border-box;
border-style: solid;
border-width: 1px;
background-color: fuchsia;
}
.bar1, .bar2, .bar3 {
width: 100%;
height: 20%;
margin: 4% 0;
background-color: #333;
}
/* Menu Content */
.menu_box {
width: 100%;
float: right;
line-height: 2.0;
box-sizing: border-box;
border-style: solid;
border-width: 1px;
}
.panel{
width: 100%;
padding-left: 0%;
cursor: pointer;
font-weight: bold;
overflow: hidden;
display:none;
}
.button_menu {
padding-left: 1%;
background: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="header">
<div class="image">
Image
</div>
<div class="navigation">
<div class="navigation_button">
<div class="bar1"></div>
<div class="bar2"></div>
<div class="bar3"></div>
</div>
<nav class="panel">
<ul class="menu_box">
<li class="button_menu"> 1.0 Menu </li>
<li class="button_menu"> 2.0 Menu </li>
<li class="button_menu"> 3.0 Menu </li>
</ul>
</nav>
</div>
</div>
只要 与 的.navigation_button
大小相同,菜单就可以完美运行.navigation
。
.navigation_button
但是,正如您在上面的代码中看到的那样,我降低了to的高度,height: 60%;
当我现在单击按钮时,.panel
不会出现在.header
. 它将出现在.navigation_button
.
为了解决这个问题,我尝试放置position:absolute;
,.panel
然后将相同的高度分配.header
给 ,.panel
但它不起作用,因为.panel
现在从页面顶部滑入。
我的另一个想法是关闭.header <div>
之后,.navigation_button
但是一旦我这样做了,动画就不再运行了。
我需要在我的代码中进行哪些更改,.panel
以确保.header
无论.navigation_button
在.header
?
解决方案
将此代码添加到“.panel”
position: absolute;
top:100%;
right: 0;
推荐阅读
- react-admin - 反应管理员 | 使用 ReferenceField 批量选择
- bash - 使用 awk 更改 CSV 文件的整列中的值
- c - 字符串正在使用键盘填充,但传递为空
- flutter - 如何在 Flutter 中将我的应用设置为横向模式?
- javascript - 如何比较 JavaScript 中的两个对象?
- playframework - Play Framework手动填充某些字段
- angular5 - Angular 5 多个领域的本地开发
- angular - 不允许多个构造函数实现
- javascript - `fs.stat` 函数用于指向 Windows 中目录的符号链接
- python - 如何从 SQL 数据库中导入数据?