Complete Code For Create Icon Tab Bar Active Animation Using CSS.
<!DOCTYPE html>
<html>
<head>
<title>How To Create Icon Tab Bar Active Animation Using CSS</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"/>
</head>
<style>
body {
background: lightblue;
font-family: "Roboto Light";
}
.active {
font-size: 20px;
}
.tabs {
width: 100%;
height: 400px;
background: #f5f5f5;
/*padding: 20px 30px;*/
overflow: hidden;
box-shadow: 5px 10px 5px #ccc;
}
.tabs .tab-header {
background: black;
display: flex;
height: 60px;
}
.tab-header > div {
width: 24px;
height: 24px;
margin: auto;
-webkit-transform-origin: 50% 50%;
transform-origin: 50% 50%;
}
i.fa {
display: inline-block;
border-radius: 60px;
box-shadow: 0px 0px 2px #888;
padding: 0.5em 0.6em;
background: white;
/*font-size: 41px;*/
position: absolute;
bottom: 65%;
}
.tabs .tab-header > div {
width: calc(32% / 4);
text-align: center;
color: white;
font-weight: 600;
cursor: pointer;
margin: auto;
/*font-size: 30px;*/
text-transform: uppercase;
outline: none;
color: yellowgreen;
}
.tabs .tab-header > div > i {
display: block;
margin-bottom: 5px;
}
.tabs .tab-header > div.active {
color: #00acee;
font-size: 40px;
}
.tabs .tab-indicator {
position: relative;
width: calc(100% / 4);
height: 5px;
background: #00acee;
left: 0px;
border-radius: 5px;
transition: all 500ms ease-in-out;
}
.tabs .tab-body {
position: relative;
height: calc(100% - 60px);
padding: 10px 5px;
border: 1px solid black;
}
.tabs .tab-body > div {
position: absolute;
top: -200%;
opacity: 0;
transform: scale(0.9);
transition: opacity 500ms ease-in-out 0ms,
transform 500ms ease-in-out 0ms;
}
.tabs .tab-body > div.active {
top: 0px;
padding: 30px;
opacity: 1;
transform: scale(1);
}
</style>
<body>
<br/><br/>
<div class="container">
<br>
<div class="text-center">
<h1 id="color" style="color: black;">Create Icon Tab Bar Active Animation Using CSS</h1>
</div>
<br><br><br>
<div class="tabs">
<div class="top">
<div class="tab-header">
<div class="active">
<i class="fa fa-home"></i>
</div>
<div>
<i class="fa fa-edit"></i>
</div>
<div>
<i class="fa fa-bar-chart"></i>
</div>
<div>
<i class="fa fa-envelope-o"></i>
</div>
</div>
</div>
<div class="tab-indicator"></div>
<div class="tab-body">
<div class="active">
<h2>This is Tab1 section</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Error neque saepe commodi blanditiis fugiat
nisi aliquam ratione porro quibusdam in, eveniet accusantium cumque. Dolore officia reprehenderit
perferendis quod libero omnis.</p>
</div>
<div>
<h2>This is Tab2 section</h2>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi minus exercitationem vero, id autem
fugit assumenda a molestiae numquam at, quisquam cumque. Labore eligendi perspiciatis quia incidunt
quaerat ut ducimus?</p>
</div>
<div>
<h2>This is Tab3 section</h2>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi minus exercitationem vero, id autem
fugit assumenda a molestiae numquam at, quisquam cumque. Labore eligendi perspiciatis quia incidunt
quaerat ut ducimus?</p>
</div>
<div>
<h2>This is Tab4 section</h2>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi minus exercitationem vero, id autem
fugit assumenda a molestiae numquam at, quisquam cumque. Labore eligendi perspiciatis quia incidunt
quaerat ut ducimus?</p>
</div>
</div>
</div>
</div>
</body>
</html>
<script>
let tabHeader = document.getElementsByClassName("tab-header")[0];
let tabIndicator = document.getElementsByClassName("tab-indicator")[0];
let tabBody = document.getElementsByClassName("tab-body")[0];
let tabsPane = tabHeader.getElementsByTagName("div");
for (let i = 0; i < tabsPane.length; i++) {
tabsPane[i].addEventListener("click", function () {
tabHeader.getElementsByClassName("active")[0].classList.remove("active");
tabsPane[i].classList.add("active");
tabBody.getElementsByClassName("active")[0].classList.remove("active");
tabBody.getElementsByTagName("div")[i].classList.add("active");
tabIndicator.style.left = `calc(calc(100% / 4) * ${i})`;
});
}
</script>