どうも、ユウです。
今回はこのサイト “Loppo” で実装している、検索フォームの作り方をご紹介します。
そうです。右上の虫眼鏡のマーク(スマホの方はSEARCHボタン)を押すと検索フォームがオーバーレイで出現するやつです。
自分で言うのも何ですけど「カッコ良くないっすか?」(笑)実は結構簡単に実装できるので、ご紹介したいと思います。
検索フォーム以外にも色々と使いみちがあると思います。特にスマホのような限られてスペースで情報を表示するには、このオーバーレイはかなり便利です。
実装にはjQueryを使いますので、まずはwebサイトにjQueryを読み込んでください。WordPressを使っている場合は、もともとjQueryが入っていますので、読み込む必要はありませんね。
jQueryの準備ができたらコードを書いていきましょう。
まずは簡単な流れを解説しておきます。
1.オーバーレイで表示する内容とjQueryを発動させるボタンを書きます。
2.CSSで表示する内容を整形して、表示を消しておきます。(display:none;)
3.jQueryで出現させたり、消したりするコードを書きます。
↑これだけです。
では、コードを見ていきましょう。今回はWordPressの検索フォームを出現させるコードで説明しますが、他の内容でも表示できますので、そこは表示させたい内容を書きましょう。
<div id="overlay_menu"> <div class="overlay__wrapper"> <?php get_search_form(); ?> </div> </div>
上のコードで言えば、get_search_form();の部分がWordPressの検索フォームを呼び出す関数です。WordPressの場合、searchform.phpファイルが有ればそれを、ない場合はWordPressに組み込まれている検索フォームが出力されます。
当サイトの場合は、検索フォームの下に説明を記述しています。
次にボタンです。表示させたい位置に置けばいいです。当サイトの場合は画面右上に表示させたかったので、header部分の一番上に記述しています。
<div id="search-btn">SEARCH</div>
次はCSSでページをスタイリングしていきます。
#search-btn { display: none; } #overlay_menu { display: none; width: 100%; height: 100%; text-align: center; position: fixed; top: 0; z-index: 9999; background: white; opacity: .98; }
idを指定して、表示するページを作っていきます。
display: none;
ではじめは表示しないようにしておきます。次に幅、高さを指定していきます。画面全体にオーバーレイで表示したい場合は、width: 100%; height: 100%;
でOKです。
position: fixed;
でオーバーレイ表示できるように。z-index: 999;
で最前面に表示させています。
これで下準備は完了です。
最後にjQueryで先ほどの内容をフェードイン・フェードアウトさせるコードを書きましょう。
$(function() { var flg = "out"; $("#search-btn").click(function() { if(flg == "out"){ $("#overlay_menu").fadeIn(); /*ふわっと表示*/ flg = "in"; }else{ $("#overlay_menu").fadeOut(); /*ふわっと消える*/ flg = "out" } }); });
これでdisplay:none;で隠されていた#overlay_menuの要素がボタンを押すたびに出現させたり、隠したりできるようになります。
以上です。意外と簡単でしょ?あとはお好きなようにCSSでボタンやページのデザインをしてみてください。
要素のidやクラス名を変更した場合は、jQueryのコードも変更したidやクラス名に変更してください。
素人が書いてるコードなんで細かいところは気にしないで、生暖かい目で見てください。(笑)