スマホサイトのメニューをフッター固定のスライド式に変更しました!
スマホサイトのメニューを改善しました。フッター固定で、こんな感じに。
『 目次』をタップするとカテゴリ一覧がするりーんとスライドして顔を出します。『 人気記事』の方はいま推しの記事10本へリンクします。
なんだか見た目がアプリっぽくていい感じ。嬉しくて自分でもタップタップ♪しちゃいます。前よりも色々な記事を読んでもらいやすくなったかな。
実装方法はそれほど難しくなかったです。流れを振り返りながら、利用した技術も紹介してみたいと思います。WordPressへ実装したので、それを前提にどうぞ。
ワイヤーフレーム
ワイヤーフレームというと大げさですが、最初にいちおう目指すところをザザザと下書きしました。
ワイヤーフレームに関して、詳しく知りたい方は以下の記事を御覧ください。
縦にスライド MeanMenu
今まではメニューをヘッダーに置いてました。使ってたのは「MeanMenu」というjQueryのプラグインです。縦にスライドしてメニューが現れます。これはこれで簡単に実装できるのでおすすめです。
横にスライド Sidr
MeanMenuを止めて、今回から利用したのは「sidr」です。簡単に使い方を説明しておきます。
要jQueryなので最初に読込んでおきます。
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
続いて、Sidrをダウンロードすると同梱されているcssとjsファイルを読込む記述を。環境によってファイルパスを書き直してください。
<link rel="stylesheet" href="jquery.sidr.dark.css" /> <script src="jquery.sidr.min.js"></script>
タップする用のリンクと、スライドで現れるメニューはこんなふうに記述します。
<!--タップするリンク --> <a id="simple-menu" href="#sidr">メニュー</a> <!-- 開くメニュー --> <div id="sidr"> <ul> <li><a href="#">リスト1</a></li> <li><a href="#">リスト2</a></li> <li><a href="#">リスト3</a></li> </ul> </div> <!-- メニューを開く命令 --> <script> jQuery(document).ready(function() { jQuery('#simple-menu').sidr(); }); </script>
これでOK。デフォルトでは左からのスライドを右にも変更できます。複数のメニューを設置することも可能です。詳しくは公式サイトへ。
アイコンフォント Fontello
メニューのアイコンは画像を使わずアイコンフォントを利用しました。Fontelloは、使うアイコンだけを選んでダウンロードできるのが便利です。
ダウンロード後の使い方は以下のサイトが詳しいです。
もし、難しければプラグインを使うという手もあります。WordPressならではですね。詳しい記事を見つけました。
メニューをフッターに固定
フッターに固定する方法は以下のリンク先が参考になります。が、自分の場合はどれも使わずcssで「position: fixed; bottom: 0;」を指定するだけで済みました。
スマホだけに表示
メニューをPCに表示したくなかったので、その振り分けをしました。
WordPressには、PCとモバイルを分ける条件分岐タグが用意されています。それを使えばPCとモバイルで表示内容を分けられます。
<?php if (wp_is_mobile()) :?> モバイルに見せるコンテンツを記述 <?php else: ?> PCに見せるコンテンツを記述 <?php endif; ?>
でも、これはiPadがモバイルに含まれています。今回のメニューはスマホだけに表示したかったので、テーマのfunction.phpに以下の記述をして、is_mobile()という関数を作りました。
function is_mobile(){ $useragents = array( 'iPhone', // iPhone 'iPod', // iPod touch 'Android', // 1.5+ Android 'dream', // Pre 1.5 Android 'CUPCAKE', // 1.5+ Android 'blackberry9500', // Storm 'blackberry9530', // Storm 'blackberry9520', // Storm v2 'blackberry9550', // Storm v2 'blackberry9800', // Torch 'webOS', // Palm Pre Experimental 'incognito', // Other iPhone browser 'webmate' // Other iPhone browser ); $pattern = '/'.implode('|', $useragents).'/i'; return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']); }
これを使ってテーマへ記述。
<?php if (is_mobile()) :?> モバイルに見せるコンテンツを記述 <?php else: ?> PCに見せるコンテンツを記述 <?php endif; ?>
以上!
フッター固定のメニューを実装できました。あとでここに二つほどボタンを増やす予定です。
それができればまた記事にしたいと思います。続編を書きました! まとめてどうぞ。
ほな、ごゆるりと〜
読み終わったらシェア!