Animated Mobile Tab Bar Navigation With jQuery And CSS/CSS3
| File Size: | 3.92 KB |
|---|---|
| Views Total: | 7293 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
An animated mobile tab bar navigation that enables the user to switch between navigation items with a wave effect using jQuery, SVG, and CSS transform & transition properties.
How to use it:
1. Create the tab bar navigation from a nav list.
<nav>
<ul class="list-wrap">
<li data-color="#eccc68" title="Home">
Home
</li>
<li data-color="#ff6b81" title="Profile">
Profile
</li>
<li data-color="#7bed9f" title="Get a beer!">
Beer
</li>
<li data-color="#70a1ff" title="Files">
Files
</li>
<li data-color="#dfe4ea" title="Settings">
Settings
</li>
</ul>
</nav>
2. Add a SVG based wave to the navigation.
<div class="wave-wrap">
<svg version="1.1" id="wave" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 119 26">
<path class="path" d="M120.8,26C98.1,26,86.4,0,60.4,0C35.9,0,21.1,26,0.5,26H120.8z"/>
</svg>
</div>
3. The core CSS & CSS3 styles for the tab bar navigation.
.wave-wrap {
position: relative;
width: 100%;
height: 33px;
overflow: hidden;
margin-bottom: 0;
}
.wave-wrap #wave {
position: absolute;
width: 150px;
transform-origin: bottom;
transform: scaleY(0.8);
transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
}
.wave-wrap #wave .path {
fill: #2f3542;
}
.list-wrap {
display: flex;
width: 100%;
height: 80px;
background: #2f3542;
list-style: none;
justify-content: space-around;
padding: 0 20px;
}
.list-wrap li {
cursor: pointer;
position: relative;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
}
.list-wrap li i {
position: relative;
font-size: 1.5em;
color: #a4b0be;
z-index: 5;
transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
}
.list-wrap li:before {
content: "";
position: absolute;
background: green;
height: 80%;
width: 80%;
left: 10%;
top: 10%;
border-radius: 50%;
z-index: 0;
transform: scale(0);
transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
}
.list-wrap li.active {
margin-top: -10px;
}
.list-wrap li.active i {
color: #2f3542;
}
.list-wrap li.active:before {
transform: scale(1);
}
4. Import the necessary jQuery library.
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha384-tsQFqpEReu7ZLhBV2VZlAu7zcOV+rXbYlF2cqB8txI/8aZajjp4Bqd+V6D5IgvKT" crossorigin="anonymous"></script>
5. The jQuery script to activate the tab bar navigation.
// set the first nav item as active
var dis = $(".list-wrap li").eq(0);
function align(dis){
// get index of item
var index = dis.index() + 1;
// add active class to the new item
$(".list-wrap li").removeClass("active");
dis.delay(100).queue(function() {
dis.addClass('active').dequeue();
});
// move the wave
var left = index * 80 - 98;
$("#wave").css('left', left);
}
// align the wave
align(dis);
// align the wave on click
$(".list-wrap li").click(function(){
dis = $(this);
align(dis);
});
This awesome jQuery plugin is developed by Tobias Glaus. For more Advanced Usages, please check the demo page or visit the official website.











