javascript - jQuery 中的汉堡菜单

标签 javascript jquery html css

我刚开始使用 jQuery,并尝试制作一个汉堡菜单。是否可以只将菜单设置为右上角的小方 block 和左上角的 Logo ?

现在菜单中的黑色栏像导航栏一样填充。

$(".cross").hide();
$(".menu").hide();
$(".hamburger").click(function() {
  $(".menu").slideToggle("slow", function() {
    $(".hamburger").hide();
    $(".cross").show();
  });
});

$(".cross").click(function() {
  $(".menu").slideToggle("slow", function() {
    $(".cross").hide();
    $(".hamburger").show();
  });
});
body {
  font-family: 'Noto Sans', sans-serif;
  margin: 0;
  width: 100%;
  height: 100vh;
}
header {
  width: 100%;
  background: #1d1f20;
  height: 60px;
  line-height: 60px;
}
.hamburger {
  background: none;
  position: absolute;
  top: 0;
  right: 0;
  line-height: 45px;
  padding: 5px 15px 0px 15px;
  color: #fff;
  border: 0;
  font-size: 1.4em;
  font-weight: bold;
  cursor: pointer;
  outline: none;
  z-index: 10000000000000;
}
.cross {
  background: none;
  position: absolute;
  top: 0px;
  right: 0;
  padding: 13px 15px 0px 15px;
  color: #fff;
  border: 0;
  font-size: 3em;
  line-height: 65px;
  font-weight: bold;
  cursor: pointer;
  outline: none;
  z-index: 10000000000000;
}
.menu {
  z-index: 1000000;
  font-weight: bold;
  font-size: 0.8em;
  width: 100%;
  background: #131313;
  position: absolute;
  text-align: center;
}
.menu ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
  list-style-image: none;
}
.menu li {
  display: block;
  padding: 15px 0 15px 0;
  border-bottom: #1d1f20 1px solid;
}
.menu li:hover {
  display: block;
  background: #181818;
  padding: 15px 0 15px 0;
  border-bottom: #1d1f20 1px solid;
}
.menu ul li a {
  text-decoration: none;
  margin: 0px;
  color: #fff;
}
.menu ul li a:hover {
  color: #fff;
  text-decoration: none;
}
.menu a {
  text-decoration: none;
  color: white;
}
.menu a:hover {
  text-decoration: none;
  color: white;
}
.glyphicon-home {
  color: white;
  font-size: 1.5em;
  margin-top: 5px;
  margin: 0 auto;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<header>
  <button class="hamburger">&#9776;</button>
  <button class="cross">&#735;</button>
</header>

<div class="menu">
  <ul>
    <a href="#">
      <li>Forside</li>
    </a>
    <li class="dropdown">
      <a href="#" class="dropbtn">Møbler</a>
      <div class="dropdown-content">
        <a href="http://facebook.com">Stole</a>
        <a href="#">Border</a>
        <a href="#">Sofaer</a>
      </div>
    </li>
    <a href="#">
      <li>Blog</li>
    </a>
    <a href="#">
      <li>Leverandøre</li>
    </a>
    <a href="#">
      <li>Om Os</li>
    </a>
  </ul>
</div>

最佳答案

试试这个。使用 Jquery。

$(".hamburger").click(function() {
  $(this).hide();
  $('.cross').show();
  $(".menu").slideToggle();
});
$(".cross").click(function() {
  $(this).hide();
  $('.hamburger').show();
  $(".menu").slideToggle();
});
body{
	font-family: 'Noto Sans', sans-serif;
	margin:0;
	width:100%;
	height:100vh;
}
header{
	width:100%; 
	background:#1d1f20; 
	height:60px; 
	line-height:60px;
}

.hamburger{
  background:none;
  position:absolute;
  top:0;
  right:0;
  line-height:45px;
  padding:5px 15px 0px 15px;
  color:#fff;
  border:0;
  font-size:1.4em;
  font-weight:bold;
  cursor:pointer;
  outline:none;
  z-index:10000000000000;
}
.cross{
  background:none;
  position:absolute;
  top:0px;
  right:0;
  padding:13px 15px 0px 15px;
  color:#fff;
  border:0;
  font-size:3em;
  line-height:65px;
  font-weight:bold;
  cursor:pointer;
  outline:none;
  z-index:10000000000000;
  display:none;
}
.menu{z-index:1000000; font-weight:bold; font-size:0.8em; width:100%; background:#131313;  position:absolute; text-align:center;display:none;}
.menu ul {margin: 0; padding: 0; list-style-type: none; list-style-image: none;}
.menu li {display: block;   padding:15px 0 15px 0; border-bottom:#1d1f20 1px solid;}
.menu li:hover{display: block;    background:#181818; padding:15px 0 15px 0; border-bottom:#1d1f20 1px solid;}
.menu ul li a { text-decoration:none;  margin: 0px; color:#fff;}
.menu ul li a:hover {  color: #fff; text-decoration:none;}
.menu a{text-decoration:none; color:white;}
.menu a:hover{text-decoration:none; color:white;}

.glyphicon-home{
  color:white; 
  font-size:1.5em; 
  margin-top:5px; 
  margin:0 auto;
}
.active{
  display:block;
  transition:all ease 0.3s;
  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
	<header>
  <button class="hamburger">&#9776;</button>
  <button class="cross">&#735;</button>
</header>

<div class="menu">
  <ul>
    <a href="#"><li>Forside</li></a>
	<li class="dropdown">
    <a href="#" class="dropbtn">Møbler</a>
    <div class="dropdown-content">
      <a href="http://facebook.com">Stole</a>
      <a href="#">Border</a>
      <a href="#">Sofaer</a>
    </div>
  </li>
    <a href="#"><li>Blog</li></a>
    <a href="#"><li>Leverandøre</li></a>
    <a href="#"><li>Om Os</li></a>
  </ul>
</div>
 <script>


</script>
 
</body>

关于javascript - jQuery 中的汉堡菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40357287/

相关文章:

javascript - 从字符串数组创建表,以便每个字符串都有自己的列,每行都是该字符串的一个字母

jquery - 导航栏上的切换按钮不起作用 - Twitter Bootstrap 3.2

HTML 表单 : Can submitted GET/POST parameters be suppressed using only HTML or CSS?

javascript - 如何在axios中实现 "before"回调

javascript - getLockHolders 返回一个 java.util.Vector 如何为特定用户解锁

jQuery:向选择器添加上下文比完善选择器要快得多?

php - 无法显示使用 PDO 查询的结果

javascript - 使用python从网站获取音频源链接

javascript - 是否可以将 javascript 值设置为 <g :set var ="x">

javascript - 使用 jQuery 和 PokéAPI 查找 JSON key 匹配