Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

CSS와 JavaScript로 반응형 하단 내비게이션 메뉴 만드는 방법

모바일 환경에서 특히 유용한 반응형 하단 내비게이션 메뉴는 화면 하단에 고정되어 있으며, 브라우저 창이 좁아지면 자동으로 햄버거(☰) 아이콘으로 전환됩니다. 다음은 CSS와 JavaScript만을 사용하여 이러한 메뉴를 구현하는 완전한 예제입니다.

예제 코드

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
body {
    margin: 0px;
    margin-top: 10px;
    padding: 0px;
}
nav {
    position: fixed;
    bottom: 0;
    width: 100%;
    background-color: rgb(39, 39, 39);
    overflow: auto;
    height: auto;
}
.links {
    display: inline-block;
    text-align: center;
    padding: 14px;
    color: rgb(178, 137, 253);
    text-decoration: none;
    font-size: 17px;
}
.links:hover {
    background-color: rgb(100, 100, 100);
}
.selected {
    background-color: rgb(0, 18, 43);
}
.hamburger {
    color: white;
    font-weight: bolder;
    display: none;
}
@media screen and (max-width: 600px) {
nav a:not(:first-child) {
    display: none;
}
nav a.hamburger {
    float: right;
    display: block;
    padding: 12px;
}
nav.openNav a.hamburger {
    position: absolute;
    right: 0;
    bottom: 0;
}
nav.openNav a {
    float: none;
    display: block;
    text-align: center;
}
}
</style>
</head>
<body>
<nav class="bottomNav">
<a class="links selected" href="#"> Home</a>
<a class="links" href="#"> Login</a>
<a class="links" href="#">Register</a>
<a class="links" href="#"> Contact Us</a>
<a class="links" href="#">More Info</a>
<a class="hamburger">☰</a>
</nav>
<div>
<h1>Bottom navigation menu</h1>
</div>
<script>
function toggleNav() {
    var x = document.getElementsByTagName("nav")[0];
    if (x.className === "bottomNav") {
        x.className += " openNav";
    } else {
        x.className = "bottomNav";
    }
}
document.querySelector(".hamburger").addEventListener("click", toggleNav);
</script>
</body>
</html>

코드 작동 원리

이 예제의 핵심 동작 방식은 다음과 같습니다.

1. 하단 고정 내비게이션: nav 요소에 position: fixed;bottom: 0; 속성을 적용하여 메뉴가 항상 화면 하단에 고정되도록 설정합니다.

2. 미디어 쿼리 처리: 화면 너비가 600px 이하로 줄어들면 첫 번째 링크(Home)를 제외한 나머지 링크들은 숨겨지고, 대신 평소에는 display: none; 상태였던 햄버거 아이콘이 오른쪽에 나타납니다.

3. JavaScript 토글 기능: toggleNav() 함수는 햄버거 아이콘이 클릭될 때마다 nav 요소에 openNav 클래스를 추가하거나 제거합니다. 이 클래스가 적용되면 숨겨졌던 링크들이 세로 목록 형태로 펼쳐집니다.

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

CSS와 JavaScript로 반응형 하단 내비게이션 메뉴 만드는 방법

브라우저 창의 크기를 600px 이하로 줄이면, 내비게이션을 열 수 있는 햄버거 아이콘이 화면에 나타납니다.

CSS와 JavaScript로 반응형 하단 내비게이션 메뉴 만드는 방법

햄버거 아이콘을 클릭하면 숨겨져 있던 메뉴 항목들이 아래로 펼쳐집니다.

CSS와 JavaScript로 반응형 하단 내비게이션 메뉴 만드는 방법