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

CSS와 JavaScript로 전체 화면 검색창 만드는 방법 (예제 코드 포함)

CSS와 JavaScript를 활용하면 버튼 하나로 열고 닫을 수 있는 전체 화면(fullscreen) 검색 상자를 간단하게 구현할 수 있습니다. 아래 예제에서는 반투명 오버레이 배경 위에 검색 입력창을 띄우는 방식으로 전체 화면 검색창을 만들어 보겠습니다.

예제 코드

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/fontawesome.min.css">
<style>
body {
    font-family: Arial;
}
* {
    box-sizing: border-box;
}
.showBtn {
    background: #008b0c;
    border: none;
    color:white;
    padding: 10px 15px;
    font-size: 20px;
    cursor: pointer;
    opacity: 0.8;
}
.showBtn:hover {
    opacity: 1;
}
.overlaySearch {
    height: 100%;
    width: 100%;
    display: none;
    position: fixed;
    z-index: 1;
    top: 0;
    left: 0;
    background-color: rgba(132, 150, 155, 0.747);
}
.searchBar {
    position: relative;
    top: 46%;
    width: 80%;
    text-align: center;
    margin-top: 30px;
    margin: auto;
}
.overlaySearch .hideBtn {
    position: absolute;
    top: 20px;
    right: 45px;
    font-size: 60px;
    cursor: pointer;
    color: rgb(255, 0, 0);
    opacity: 0.8;
}
.overlaySearch .hideBtn:hover {
    opacity: 1;
}
.overlaySearch input[type=text] {
    padding: 15px;
    font-size: 17px;
    border: none;
    float: left;
    width: 80%;
    background: white;
}
.overlaySearch input[type=text]:hover {
    background: #f1f1f1;
}
.overlaySearch button {
    float: left;
    width: 20%;
    padding: 15px;
    background: rgb(54, 21, 241);
    font-size: 17px;
    border: none;
    color:white;
    cursor: pointer;
    opacity: 0.8;
}
.overlaySearch button:hover {
    opacity: 1;
}
</style>
</head>
<body>
<div class="overlaySearch" >
<span class="hideBtn">×</span>
<div class="searchBar">
<form >
<input type="text" placeholder="Search Here..">
<button type="submit"><i class="fa fa-search"></i></button>
</form>
</div>
</div>
<h1>Fullscreen Search Example</h1>
<button class="showBtn">Open Search Box</button>
<h2>Click on the above button to open search box in full screen</h2>
<script>
document.querySelector('.hideBtn').addEventListener('click',hideSearch);
document.querySelector('.showBtn').addEventListener('click',showSearch);
function showSearch() {
    document.querySelector('.overlaySearch').style.display = "block";
}
function hideSearch() {
    document.querySelector('.overlaySearch').style.display = "none";
}
</script>
</body>
</html>

출력 결과

위 코드를 실행하면 다음과 같은 초기 화면이 표시됩니다.

CSS와 JavaScript로 전체 화면 검색창 만드는 방법 (예제 코드 포함)

Open Search Box 버튼을 클릭하면 화면 전체를 덮는 검색 상자가 열립니다.

CSS와 JavaScript로 전체 화면 검색창 만드는 방법 (예제 코드 포함)

동작 원리

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

  • .overlaySearch: position: fixed와 width·height 100%를 사용해 화면 전체를 덮는 오버레이 레이어를 만듭니다. 기본값은 display: none으로 설정되어 처음에는 보이지 않습니다.
  • showSearch(): 'Open Search Box' 버튼 클릭 시 오버레이의 display 값을 block으로 변경하여 검색창을 화면에 표시합니다.
  • hideSearch(): 오른쪽 상단의 ×(닫기) 버튼 클릭 시 display 값을 none으로 되돌려 검색창을 닫습니다.
  • 호버 효과: 버튼과 입력창에 opacity 및 background 색상 변화를 적용해 마우스를 올렸을 때 자연스러운 시각적 피드백을 제공합니다.

이처럼 CSS의 고정 위치 오버레이와 JavaScript의 간단한 display 토글만으로도 별도의 라이브러리 없이 세련된 전체 화면 검색 UI를 손쉽게 완성할 수 있습니다.