我正在尝试制作一个响应式网站菜单,该菜单可以用一个汉堡包打开(3行)。
我已经打开菜单,但是为了让它腾出空间,它一直在上下移动汉堡。
如何制作它,以便您在打开菜单并播放动画的同时单击汉堡并将其保留在SAME PLACE中?
<div class="burger" id="burger" onclick="openBurger(this)">
<div class="bar1"></div>
<div class="bar2"></div>
<div class="bar3"></div>
</center>
JS
function openBurger(x) {
x.classList.toggle("change");
}
$("#burger").click(function() {
$("#nav").toggle();
});
汉堡
谢谢。
答案 0 :(得分:0)
function myFunction(x) {
x.classList.toggle("change");
}
.container {
display: inline-block;
cursor: pointer;
}
.bar1, .bar2, .bar3 {
width: 35px;
height: 5px;
background-color: #333;
margin: 6px 0;
transition: 0.4s;
}
.change .bar1 {
-webkit-transform: rotate(-45deg) translate(-9px, 6px);
transform: rotate(-45deg) translate(-9px, 6px);
}
.change .bar2 {opacity: 0;}
.change .bar3 {
-webkit-transform: rotate(45deg) translate(-8px, -8px);
transform: rotate(45deg) translate(-8px, -8px);
}
<div class="container" onclick="myFunction(this)">
<div class="bar1"></div>
<div class="bar2"></div>
<div class="bar3"></div>
</div>
答案 1 :(得分:0)
您的汉堡菜单应独立于您的导航列表而生活。在此示例中,您可以将其包括在列表之前,并使用jQuery切换导航状态。
$("#burger").click(function() {
var state = $("#nav").attr("class");
$("#nav").attr("class", state == "show" ? "hide" : "show");
});
#burger { font-size: 32px; text-decoration: none; }
#nav { display: none; }
#nav.show { display: block; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="burger" href="#">☰</a>
<ul id="nav">
<li><a class="bar1" href="#">Home</a></li>
<li><a class="bar2" href="#">Work</a></li>
<li><a class="bar3" href="#">Contact</a></li>
</ul>