jQuery addClass example
Change class name on click in jQuery
by cvalleskey
HTML
<nav class="main-navigation">
<a href="#" class="logo">Kinder<br/>Academy</a>
<ol>
<li><a href="#">About</a></li>
<li><a href="#">Team</a></li>
<li class="current"><a href="#">Curriculum</a></li>
<li><a href="#">Apply</a></li>
<li><a href="#">Contact</a></li>
</ol>
<button class="menu">☰</button>
</nav>
<section class="grid ">
</section>
CSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background-color: #FFF;
font: 20px/1.4 'Avenir Next', 'Helvetica Neue', sans-serif;
}
nav {
display: flex;
width: 100%;
justify-content: space-between;
margin-bottom: 1vh;
}
nav .logo {
background: #F7046E;
padding: 1rem;
color: #FFF;
display: flex;
text-decoration: none;
align-items: flex-end;
font-weight: bold;
flex: 1 0 auto;
max-width: 200px;
}
nav .menu {
padding: 1rem;
color: #292883;
display: flex;
text-decoration: none;
align-items: flex-end;
justify-content: center;
border: none;
background: transparent;
font-size: 2rem;
min-width: 10rem;
cursor: pointer;
}
nav ol {
list-style: none;
display: flex;
flex: 1 0 auto;
max-width: 1200px;
}
nav ol li {
flex: 1 0 auto;
height: 10rem;
display: flex;
transition: all 0.3s;
box-shadow: inset 0 0 0px -10px rgba(0,0,0,0);
}
nav ol a {
display: flex;
min-height: 100%;
width: 100%;
color: #292883;
padding: 15vmin 1.5rem 5vmin;
text-transform: uppercase;
justify-content: center;
text-align: end;
text-decoration: none;
align-items: flex-end;
font-weight: 500;
font-size: 0.825rem;
letter-spacing: 0.2em;
transition: all 0.25s cubic-bezier(0.75, 0, 0.25, 1.625);
}
nav li:hover {
background: hsl(241, 53%, 95%);
color: #222;
}
nav li:hover a {
padding-top: 10vmin;
padding-bottom: 10vmin;
}
nav li:active {
background: hsl(241, 53%, 90%);
color: #444;
}
nav li.current {
background: hsl(241, 53%, 34%);
color: #FFF;
align-items: center;
}
nav li.current a {
color: #FFF;
padding-top: 10vmin;
padding-bottom: 10vmin;
}
/* nav li.current:hover a {
padding-top: 10vh;
padding-bottom: 10vh;
}
nav li.current:active a {
padding-top: 11vh;
padding-bottom: 9vh;
} */
JavaScript
$('.main-navigation a').click(function() {
$('.main-navigation li').removeClass('current');
$(this).parent().addClass('current');
});