导航栏切换很重要
Nav-bar toggle matters
我想知道如何使用 jquery 创建响应式导航栏。
javascript 用于切换导航栏的动画,而不是导航链接。我怎样才能做到这一点?我想知道当 #nav-icon1 被切换时菜单下拉菜单是否只是动画。
Js
$(document).ready(function(){
$('#nav-icon1').click(function(){
$(this).toggleClass('open');
});
});
Html
<header>
<a href="index.html" class="logo"><img src="images/logo/logo.svg" alt="" width="250px"></a>
<nav>
<ul class="nav-links open">
<li><a href="index.html" class="a1" >Explore</a></li>
<li><a href="index.html" class="a1" >About</a></li>
<li><a href="index.html" class="a1" >Pricing</a></li>
<li><a href="index.html" class="a1" >Login</a></li>
<li id="line-1">
<div class="line"></div>
</li>
<li><a href="index.html" class="register">
<button>Register</button>
</a></li>
</ul>
</nav>
<div id="nav-icon1">
<span></span>
<span></span>
<span></span>
</div>
</header>
Css
@media (max-width: 1200px) {
header {
flex-direction: column;
}
#line-1{
padding: 0;
}
.line{
display: none;
}
.logo{
padding-bottom: 30px;
}
nav ul {
flex-direction: column;
width: 100%;
align-items: center;
}
.nav-links{
display: none;
width: 100%;
}
nav ul li a{
padding: 50px;
font-size: 35px;
}
.nav-links li .a1:hover {
background-color: white;
border: none;
color: black;
font-size: 50px;
overflow: hidden;
padding: 10px 25px 40px;
}
.register button{
font-size: 25px;
border-radius: 45px;
padding: 15px 30px;
margin-left: 5px;
}
.open{
display: flex;
}
}
我对你的问题有点困惑。我应该相信你想要这样的东西。
或者在我创建的 Codepen 上试试这个 https://codepen.io/Preygremmer15/pen/LYLbdmq
$(document).ready(function(){
$('#nav-icon1').click(function(){
//target myNav id to toggle class 'open'
$("#myNav").toggleClass('open');
});
});
body {
font-family: Lato;
background-color: #f5f5f5;
margin: 0;
}
header {
position: relative;
display: flex;
align-items: center;
width: 100%;
height: 60px;
background-color: grey;
}
header img {
padding: 0 10px;
height: 40px;
object-fit: cover;
}
#nav-icon1 {
position: absolute;
right: 15px;
display: none;
align-items: center;
justify-content: center;
font-size: 20px;
height: 40px;
}
#nav-icon1:hover {
cursor: pointer;
}
#nav-icon1 span {
height: 6px;
}
#myNav ul {
display: flex;
gap: 10px;
}
#myNav ul li {
list-style: none;
}
#myNav ul li a {
text-decoration: none;
color: #fff;
}
.open {
display: flex !important;
width: 200px;
}
@media (max-width: 1200px) {
#nav-icon1 {
display: flex;
}
#myNav {
display: none;
position: absolute;
background-color: white;
top: 60px;
right: 0;
height: auto;
width: 200px;
}
#myNav ul {
display: flex;
flex-direction: column;
align-items: flex-end;
width: 100%;
height: 100%;
padding: 15px 15px;
}
#myNav ul li a {
color: #000;
font-size: 20px;
}
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<header>
<a href="index.html" class="logo"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/02/Stack_Overflow_logo.svg/1280px-Stack_Overflow_logo.svg.png" alt="">
</a>
<nav id="myNav">
<ul class="nav-links">
<li><a href="index.html" class="a1" >Explore</a></li>
<li><a href="index.html" class="a1" >About</a></li>
<li><a href="index.html" class="a1" >Pricing</a></li>
<li><a href="index.html" class="a1" >Login</a></li>
<li id="line-1">
<div class="line"></div>
</li>
<li><a href="index.html" class="register">
<button>Register</button>
</a></li>
</ul>
</nav>
<div id="nav-icon1">
<i class="fa fa-bars"></i>
<!--<span>-</span>
<span>-</span>
<span>-</span>-->
</div>
</header>
我想知道如何使用 jquery 创建响应式导航栏。 javascript 用于切换导航栏的动画,而不是导航链接。我怎样才能做到这一点?我想知道当 #nav-icon1 被切换时菜单下拉菜单是否只是动画。
Js
$(document).ready(function(){
$('#nav-icon1').click(function(){
$(this).toggleClass('open');
});
});
Html
<header>
<a href="index.html" class="logo"><img src="images/logo/logo.svg" alt="" width="250px"></a>
<nav>
<ul class="nav-links open">
<li><a href="index.html" class="a1" >Explore</a></li>
<li><a href="index.html" class="a1" >About</a></li>
<li><a href="index.html" class="a1" >Pricing</a></li>
<li><a href="index.html" class="a1" >Login</a></li>
<li id="line-1">
<div class="line"></div>
</li>
<li><a href="index.html" class="register">
<button>Register</button>
</a></li>
</ul>
</nav>
<div id="nav-icon1">
<span></span>
<span></span>
<span></span>
</div>
</header>
Css
@media (max-width: 1200px) {
header {
flex-direction: column;
}
#line-1{
padding: 0;
}
.line{
display: none;
}
.logo{
padding-bottom: 30px;
}
nav ul {
flex-direction: column;
width: 100%;
align-items: center;
}
.nav-links{
display: none;
width: 100%;
}
nav ul li a{
padding: 50px;
font-size: 35px;
}
.nav-links li .a1:hover {
background-color: white;
border: none;
color: black;
font-size: 50px;
overflow: hidden;
padding: 10px 25px 40px;
}
.register button{
font-size: 25px;
border-radius: 45px;
padding: 15px 30px;
margin-left: 5px;
}
.open{
display: flex;
}
}
我对你的问题有点困惑。我应该相信你想要这样的东西。
或者在我创建的 Codepen 上试试这个 https://codepen.io/Preygremmer15/pen/LYLbdmq
$(document).ready(function(){
$('#nav-icon1').click(function(){
//target myNav id to toggle class 'open'
$("#myNav").toggleClass('open');
});
});
body {
font-family: Lato;
background-color: #f5f5f5;
margin: 0;
}
header {
position: relative;
display: flex;
align-items: center;
width: 100%;
height: 60px;
background-color: grey;
}
header img {
padding: 0 10px;
height: 40px;
object-fit: cover;
}
#nav-icon1 {
position: absolute;
right: 15px;
display: none;
align-items: center;
justify-content: center;
font-size: 20px;
height: 40px;
}
#nav-icon1:hover {
cursor: pointer;
}
#nav-icon1 span {
height: 6px;
}
#myNav ul {
display: flex;
gap: 10px;
}
#myNav ul li {
list-style: none;
}
#myNav ul li a {
text-decoration: none;
color: #fff;
}
.open {
display: flex !important;
width: 200px;
}
@media (max-width: 1200px) {
#nav-icon1 {
display: flex;
}
#myNav {
display: none;
position: absolute;
background-color: white;
top: 60px;
right: 0;
height: auto;
width: 200px;
}
#myNav ul {
display: flex;
flex-direction: column;
align-items: flex-end;
width: 100%;
height: 100%;
padding: 15px 15px;
}
#myNav ul li a {
color: #000;
font-size: 20px;
}
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<header>
<a href="index.html" class="logo"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/02/Stack_Overflow_logo.svg/1280px-Stack_Overflow_logo.svg.png" alt="">
</a>
<nav id="myNav">
<ul class="nav-links">
<li><a href="index.html" class="a1" >Explore</a></li>
<li><a href="index.html" class="a1" >About</a></li>
<li><a href="index.html" class="a1" >Pricing</a></li>
<li><a href="index.html" class="a1" >Login</a></li>
<li id="line-1">
<div class="line"></div>
</li>
<li><a href="index.html" class="register">
<button>Register</button>
</a></li>
</ul>
</nav>
<div id="nav-icon1">
<i class="fa fa-bars"></i>
<!--<span>-</span>
<span>-</span>
<span>-</span>-->
</div>
</header>