μλ‘
νλμ νλ‘μ νΈμμ κ΄λ¦¬μμ© νλ©΄κ³Ό μ¬μ©μμ© νλ©΄μ λμμ κ°μ΄ μ°λ κ²½μ°κ° κ°νΉ μλ€.
κ΄λ¦¬μ νλ©΄μ κ²½μ°, μ¬μ©νλ λ©λ΄κ° λ§μ (μ¬μ§μ΄ λλ‘λ€μ΄ λ©λ΄κ° νλ€νλ€.)
μ¬μ΄λλ©λ΄(λ²κ±°λ©λ΄ Burger Menu) λ‘ κ΅¬ννμλ€.
μ΄μλ λ€λ₯΄κ² μ¬μ©μ νλ©΄μ κ²½μ° νμ΄μ§κ° λͺ κ° μμ΄ μλμ κ°μ΄ Navigation barλ‘ κ΅¬ννμλ€.
#Lib
jquery.min.js
bootstrap.min.css
fontawesome.all.css
html
<div class="navigation">
<ul class="bottom-nav">
<div class="slider"></div>
<li>
<a href="#">
<i class="far fa-user" style="margin-left:0px;"></i>
<span>λ΄μ 보</span>
</a>
</li>
<li>
<a href="#" class="active-icon" id="defaultActive">
<i class="fas fa-qrcode" style="margin-left:0px;"></i>
<span>QRcode</span>
</a>
</li>
<li>
<a href="#">
<i class="fas fa-shopping-cart" style="margin-left:0px;"></i>
<span>κ±°λλ΄μ</span>
</a>
</li>
...
<li>
<a href="${root}/logout.do" class="text-danger">
<i class="fas fa-sign-out-alt" style="margin-left: 0px;"></i>
<span>λ‘κ·Έμμ</span>
</a>
</li>
</ul>
</div>
//page init μ μ΄κΈ° μΈν
μ κ°μ ν νκΈ° μν΄ μ μΈ
<script type="text/javascript">
$(function () {
let position = $("#defaultActive").position();
const margin = 51;
$(".slider").css({
left: +position.left + margin,
transform: "translateX(-50%)"
});
$(".bottom-nav li a").removeClass("active-icon");
$("#defaultActive").addClass("active-icon");
})
</script>
javascript
μ΄ν΄νκΈ° μ¬μ΄ μ½λμ΄λ€.
thisμ position κ°μ μ½μ νμ, κ°μ κ³μ°νμ¬ css κ°μ μμ μν¨λ€.
$(function () {
$(".bottom-nav li a").click(function () {
let position = $(this).position();
const margin = 51;
$(".slider").css({
left: +position.left + margin,
transform: "translateX(-50%)"
});
$(".bottom-nav li a").removeClass("active-icon");
$(this).addClass("active-icon");
});
})
css
.bottom-nav {
border-top: 2px solid #f2f2f2;
z-index: 999;
width: 50%;
height: 80px;
position: fixed;
bottom: 0px;
left: 25%;
display: flex;
justify-content: center;
align-items: center;
background-color: #fff;
margin: 0px;
padding: 15px 0px 15px;
box-shadow: 0px 8px 10px rgba(130, 43, 97, 0.19);
list-style: none;
}
.bottom-nav li{
width: 25%;
}
.bottom-nav li a {
height: 40px;
color: #6777ef;
text-align: center;
font-size: 20px;
display: block;
transition: 1s;
position: relative;
}
.bottom-nav li a i {
width: 100%;
position: absolute;
font-size: 20px;
top: 0;
left: 0;
transition-delay: 0.3s;
transition: 1s cubic-bezier(0.49, -0.35, 0.77, 1.44);
z-index: 9;
}
.bottom-nav li a span {
display: block;
font-size: 12px;
width: 100%;
position: absolute;
bottom: -16px;
transition-delay: 0.3s;
transition: 1s cubic-bezier(0.49, -0.35, 0.77, 1.44);
z-index: 9;
opacity: 0;
}
.bottom-nav li a.active-icon i {
top: 0%;
transition-delay: 0.3s;
transition: 1s cubic-bezier(0.49, -0.35, 0.77, 1.44);
}
.bottom-nav li a.active-icon span {
bottom: 35px;
transition-delay: 0.5s;
transition: 1s cubic-bezier(0.49, -0.35, 0.77, 1.44);
opacity: 1;
}
.bottom-nav .slider {
width: 40px;
height: 40px;
position: absolute;
left: 37%;
transform: translateX(-50%);
top: 30%;
background-color: #fff;
border: 2px solid #6777ef;
box-shadow: 0px 0px 0px 5px #6777ef;
transition: 1s;
border-radius: 50%;
}
@media (max-width: 900px) {
.bottom-nav {
width: 100%;
left: 0;
}
}
λ°μν