にゅるっと!スマホ対応のアコーディオンメニュー設置方法

記事内にPR・広告が含まれる場合があります
スマートフォン対応のWebサイトの重要性が増していますが、単純にスマホサイトを作れば良いわけではありません。ユーザーにとって見やすく使いやすいサイトでなければなりません。
スマホサイトはパソコンとは異なり、コンテンツを表示できるスペースが限られています。その為、見た目をスッキリしスペースを確保するためにメニューに力を入れているサイトが多くなりました。例えば画面をスライドすると横からメニューが表示されるタイプや、上部からメニューがオーバーレイで表示されるタイプなどがあります。
様々なタイプのメニューがありますが、メニューボタンをタップするとメニューが表示されるものをご紹介致します。当サイトiscleでも実装したアコーディオンタイプのメニューです。どのようなメニューかは当サイトをスマホで確認してみてください!
広 告
設置方法
アコーディオンタイプのメニューなので、下のコンテンツにメニューが重なったりしません。Google AdSenseを利用しているサイトの場合、メニューが広告の上に重なることでポリシー違反となる可能性もあります。ですからメニューがコンテンツに重ならないタイプのメニューは、AdSense利用者にお勧めです。
HTML
<!-- menu -->
<div id="top-menu">
<header>
<div class="search">検索</div>
<div class="menu">MENU</div>
</header>
<div class="js-search sb-left">
**ここに検索ボックス**
</div>
<div class="js-menu sb-right">
<ul>
<li>メニュー1</li>
<li>メニュー2</li>
<li>メニュー3</li>
</ul>
</div>
</div>
<!-- #menu -->「検索」「MENU」の部分を虫眼鏡アイコンやハンバーガーアイコン(メニューアイコン)にしてもOKです!
CSS
#top-menu{
width:100%;
margin:0 auto;
}
.menu{
border:1px solid #999;
border-radius: 6px;
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
padding:6px 0px;
width:50px;
margin:2px 2px 0 -52px;
text-align:center;
float:right;
}
.search{
border:1px solid #999;
border-radius: 6px;
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
padding:6px 0px;
width:50px;
margin:2px -52px 0 2px;
text-align:center;
float:left;
}
.sb-right ul{
list-style-type: none;
}
.sb-right ul li{
font-size:16px;
border-bottom:solid 1px #dddddd;
}
.sb-right ul li a{
color:#333;
display:block;
padding:12px 0 12px 20px
}
.js-menu, .js-search {
width: 100%;
height: auto;
background:#f4f4f4;
padding:2px 0 6px 0;
display: none;
clear:both;
}サイトに合わせて色やサイズ等は変更してください。
JavaScript
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
<script type="text/javascript">
$(function() {
var menu = $("div.js-menu");
var search = $("div.js-search");
menu.hide();
search.hide();
$("div.menu").on("click", {a: menu, b: search}, slide);
$("div.search").on("click", {a: search, b: menu}, slide);
function slide(event) {
if (event.data.a.css("display") === "none") {
event.data.a.slideDown(250);
event.data.b.slideUp(250);
} else {
event.data.a.slideUp(250);
}
}
});
</script>head内に入れてください!
参考・引用:RAKUISHI.COM
左にアイコンを付ける場合
iscleのメニューのように、メニュー左側にアイコンを付ける方法です。
HTML
<ul>
<li class="icon-menu1">メニュー1</li>
<li class="icon-menu2">メニュー2</li>
</ul>先ほどのHTMLの liタグ にクラスを指定します。
CSS
.sb-right ul li.icon-menu1{
background:url(images/listimg/icon-menu1.png) 5px 12px no-repeat;
}
.sb-right ul li.icon-menu2{
background:url(images/listimg/icon-menu2.png) 5px 12px no-repeat;
}CSSでアイコンが表示されるようにbackgroudで指定します。アイコンはご自身で用意してください。



