どのようにしてドロップダウンメニューを検索/フィルタリングするか
- 前のページ 要素をフィルタリングする
- 次のページ 並べ替えリスト
CSSとJavaScriptを使用してドロップダウンメニューで項目を検索する方法を学びます。
ドロップダウンメニューをフィルタリングします
クリック可能なドロップダウンメニューを作成します
ユーザーがボタンをクリックしたときに表示されるドロップダウンメニューを作成します。
第1段 - HTMLを追加:
<div class="dropdown"> <button onclick="myFunction()" class="dropbtn">ドロップダウン</button> <div id="myDropdown" class="dropdown-content"> <input type="text" placeholder="検索.." id="myInput" onkeyup="filterFunction()"> <a href="#about">について</a> <a href="#base">ベース</a> <a href="#blog">ブログ</a> <a href="#contact">連絡先</a> <a href="#custom">カスタム</a> <a href="#support">サポート</a> <a href="#tools">ツール</a> </div> </div>
例説明:
ドロップダウンメニューを開くために、どの要素でも使用できます。例えば<button>、<a>、<p>要素などです。
ドロップダウンメニューを作成するためには、コンテナ要素(例:<div>)を使用し、その中にドロップダウンメニューのリンクを追加します。
ボタンと別の<div>要素を<div>要素で囲むことで、CSSを使用してドロップダウンメニューを正しく配置します。
第2段 - CSSを追加:
/* ドロップダウンメニューのボタン */ .dropbtn { background-color: #04AA6D; color: white; padding: 16px; font-size: 16px; border: none; cursor: pointer; } /* マウスオーバーおよびフォーカス時のドロップダウンメニューのボタン */ .dropbtn:hover, .dropbtn:focus { background-color: #3e8e41; } /* 検索フィールド */ #myInput { box-sizing: border-box; background-image: url('searchicon.png'); background-position: 14px 12px; background-repeat: no-repeat; font-size: 16px; padding: 14px 20px 12px 45px; border: none; border-bottom: 1px solid #ddd; } /* 検索ボックスがフォーカスを取得/クリックされた場合 */ #myInput:focus {outline: 3px solid #ddd;} /* コンテナ <div> - ドロップダウンメニューの内容を定位するため */ .dropdown { position: relative; display: inline-block; } /* ドロップダウンメニューの内容(デフォルトで非表示) */ .dropdown-content { display: none; position: absolute; background-color: #f6f6f6; min-width: 230px; border: 1px solid #ddd; z-index: 1; } /* ドロップダウンメニュー内のリンク */ .dropdown-content a { color: black; padding: 12px 16px; text-decoration: none; display: block; } /* マウスオーバー時のドロップダウンメニューのリンクの色を変更する */ .dropdown-content a:hover {background-color: #f1f1f1} /* ドロップダウンメニューを表示する(ユーザーがドロップダウンメニューのボタンをクリックした場合、JSを使用してこのクラスを .dropdown-content コンテナに追加します) */ .show {display:block;}
例説明:
ドロップダウンメニューのボタンは、背景色、内側マージン、ホバー効果など、スタイルデザインが施されています。
.dropdown
クラスを使用して position:relative
、これはドロップダウン内容がドロップダウンメニューのボタンのすぐ下に位置するようにするためです(以下を使用して)。 position:absolute
を実現しています)。
.dropdown-content
クラスが実際のドロップダウンメニューを含んでいます。デフォルトでは非表示で、ホバー時に表示されます(以下を参照)。注意、min-width
が230pxに設定されています。必要に応じて変更してください。ヒント:ドロップダウンコンテンツの幅をドロップダウンメニューのボタンと同じにしたい場合は、 width
を100%(および overflow
autoに設定して、小画面でスクロールを有効にします)。
検索ボックス(#myInput)はスタイルデザインが施され、ドロップダウンメニュー内に適応されています。検索アイコンが検索ボックスの左側に配置されており、これは実際には検索ボックスであることを示しています。
第3ステップ - JavaScriptを追加します:
/* ユーザーがボタンをクリックしたとき、ドロップダウンコンテンツの非表示と表示の切り替えを行います */ function myFunction() { document.getElementById("myDropdown").classList.toggle("show"); } function filterFunction() { var input, filter, ul, li, a, i; input = document.getElementById("myInput"); filter = input.value.toUpperCase(); div = document.getElementById("myDropdown"); a = div.getElementsByTagName("a"); for (i = 0; i < a.length; i++) { txtValue = a[i].textContent || a[i].innerText; if (txtValue.toUpperCase().indexOf(filter) > -1) { a[i].style.display = ""; } else { a[i].style.display = "none"; } } }
関連ページ
チュートリアル:CSSドロップダウンメニュー
チュートリアル:実現方法:ホバードロップダウンメニューを作成する
- 前のページ 要素をフィルタリングする
- 次のページ 並べ替えリスト