CSSとJavaScriptで作る全画面検索ボックスの実装方法【サンプルコード付き】
CSSとJavaScriptを組み合わせれば、クリック1つで画面全体に広がるオーバーレイ型の検索ボックスを手軽に実装できます。本記事では、ボタンをクリックすると検索画面が全画面で開き、右上の×ボタンで閉じられる仕組みを、実際に動作するサンプルコードとともにわかりやすく解説します。
全画面検索ボックスの実装サンプル
以下が、HTML・CSS・JavaScriptを使った全画面検索ボックスの完全なサンプルコードです。そのままコピーしてブラウザで開けば、すぐに動作を確認できます。
<!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%;
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>
<p>上のボタンをクリックすると、検索ボックスが全画面で開きます</p>
<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>
コードのポイント解説
1. オーバーレイの基本設定
.overlaySearch クラスでは、position: fixed を指定して要素をビューポート基準で固定し、widthとheightを100%にすることで画面全体を覆っています。初期状態は display: none で非表示にしておき、必要なタイミングでのみ表示する仕組みです。背景色には rgba() を使用して半透明にしているため、背後のページが薄っすらと透けて見える洗練された演出になります。さらに z-index: 1 を指定することで、他のコンテンツよりも手前に確実に表示されます。
2. 検索バーの中央配置
.searchBar クラスは top: 46% で縦位置を微調整し、margin: auto によって水平方向の中央揃えを実現しています。テキスト入力欄は幅80%、検索ボタンは幅20%に設定し、それぞれに float: left を指定することで横一列に並べています。入力欄にカーソルを合わせると背景色が変化するホバー効果も加えてあり、操作性と見た目の両方を向上させています。
3. JavaScriptで表示・非表示を切り替える
querySelector() で対象の要素を取得し、addEventListener() でクリックイベントを登録します。「Open Search Box」ボタンが押されると showSearch() 関数が呼び出され、オーバーレイが display: block で全画面表示されます。逆に右上の×ボタンが押されると hideSearch() 関数が実行され、display: none で元の画面に戻ります。わずか数行のJavaScriptで直感的なユーザーインターフェースを実現できる点が大きな魅力です。
実行結果
上記のコードをブラウザで開くと、まず緑色の「Open Search Box」ボタンが表示されます。
このボタンをクリックすると、画面全体が半透明のグレーで覆われ、中央に検索バーが現れます。キーワードを入力して虫眼鏡アイコンのボタンを押せば検索が実行され、右上の赤い×ボタンをクリックすればいつでも元の画面へ戻ることができます。
-
CSSとJavaScriptでスナックバー/トーストを実装する方法【サンプルコード付き】
スナックバー(トースト)は、画面の端に一時的に表示される小さな通知メッセージのことです。「保存が完了しました」などの操作結果をユーザーへ伝える際によく使われ、数秒後に自動的に消えるのが特徴です。CSSとJavaScriptを組み合わせれば、特別なライブラリを使わずとも簡単に実装できます。以下に、ボタンをクリックすると画面下部にスナックバーが表示され、数秒後にフェードアウトするサンプルコードを示します。コード例<!DOCTYPE html> <html> <head> <meta name="viewport" content=&qu
-
CSSとJavaScriptでアコーディオン(開閉パネル)を作成する方法をわかりやすく解説
CSSとJavaScriptを組み合わせることで、クリックすると内容が開閉する「アコーディオン(折りたたみパネル)」を簡単に実装できます。本記事では、実際に動作するサンプルコードをもとに、その作成手順と仕組みを詳しく解説します。 アコーディオンの実装例 以下は、HTML・CSS・JavaScriptを使ってアコーディオンを実装した完全なサンプルコードです。 <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, ini