menu
menu

スマホサイト向け横にスクロールするナビゲーション | Webデザインラボ

キーワード検索

11月のアクセストップ10

  1. ( 1-) スマホサイトの作成・基本編
  2. ( 3↑) CSSだけでドロップダウンメニュー
  3. ( 2↓) CSSだけでサイズ可変・スマホ対応のアコーディオン
  4. ( 4-) HTML5・ページ作成の基本
  5. ( 5-) jQueryでドロップダウンメニュー
  6. ( 6-) スマホ・タブレット・PCの振り分けいろいろ
  7. ( 9↑) 表示しているブラウザの高さを取得してCSSのheightに指定
  8. ( 8-) Windows 10にApache2.4 VC11をインストール
  9. ( 7↓) JavaScriptで新しいウィンドウを開く
  10. (-↑) CSSだけでブロック要素の表示非表示(トグルボタン)
  • facebook14
  • はてなブックマーク7
  • Google+1
  • Pocket0
  • Twitter0

スマホサイト向け横にスクロールするナビゲーション

  • Labs

CSS3

こんにちは(・∀・)

 今回はスマホサイト向け、横にスクロールするナビゲーションのサンプルをご紹介します。スマホサイトのナビゲーションといえばハンバーガーボタンをクリックして、トップやサイドからポップアップしてくるメニューを思い浮かべる方も多いと思います。今回ご紹介するスマホサイト向けナビゲーションは、横並びのボタンをそのまま横にスクロールするというとても単純なナビゲーションとなっております。この横にスクロールするナビゲーション、使ってるサイトも最近は増えてきていますね。

1. 慣性スクロールでヌルっとスクロール

 慣性スクロールはナビゲーションを横にスクロール際、ヌルーっとスクロールするさせる方法です。webkit系のブラウザのみ対応となります。

サンプルデモ

サンプルデモはこちら!


HTML

<div class="gnav">
<ul>
<li><a href="#">menu1</a></li>
<li><a href="#">menu2</a></li>
<li><a href="#">menu3</a></li>
<li><a href="#">menu4</a></li>
<li><a href="#">menu5</a></li>
<li><a href="#">menu6</a></li>
<li><a href="#">menu7</a></li>
<li><a href="#">menu8</a></li>
</ul>
<!--gnav--></div>
CSS

.gnav {
	width: 100%;
	overflow-x: auto;
}
.gnav ul {
	width: 807px;
	height: 40px;
	margin: 0 auto 2px auto;
	list-style: none;
}
.gnav ul li {
	float: left;
	text-align: center;
	margin-right: 1px;
}
.gnav ul li:last-child {
	margin-right: 0;
}
.gnav ul li a,
.gnav ul li a:link,
.gnav ul li a:visited {
	display: inline-block;
	width: 100px;
	height: 40px;
	background: #9fb7d4;
	color: #fff;
}
.gnav ul li a:hover,
.gnav ul li a:active {
	background: #afc6e2;
}
.gnav {
	-webkit-overflow-scrolling: touch;
}

 この方法だとスクロールしているときだけスクロールバーは表示されますが、普段は非表示となります。


2. 横スクロールナビゲーション

 ナビゲーションを横にスクロールさせるナビゲーション、初めてそのサイトに訪れる方にはそのメニューが横に長く、見えていない部分があるということがわかりづらいという欠点があります。ユーザビリティ的にはよくありません。なのでそれを解消するために横スクロールバーを見えるようにして、スクロールしていないときでもわかるようにしてあげます。

サンプルデモ

サンプルデモはこちら!


HTML

<div class="gnav">
<ul>
<li><a href="#">menu1</a></li>
<li><a href="#">menu2</a></li>
<li><a href="#">menu3</a></li>
<li><a href="#">menu4</a></li>
<li><a href="#">menu5</a></li>
<li><a href="#">menu6</a></li>
<li><a href="#">menu7</a></li>
<li><a href="#">menu8</a></li>
</ul>
<!--gnav--></div>
CSS

.gnav {
	width: 100%;
	overflow-x: auto;
}
.gnav ul {
	width: 807px;
	height: 40px;
	margin: 0 auto 2px auto;
	list-style: none;
}
.gnav ul li {
	float: left;
	text-align: center;
	margin-right: 1px;
}
.gnav ul li:last-child {
	margin-right: 0;
}
.gnav ul li a,
.gnav ul li a:link,
.gnav ul li a:visited {
	display: inline-block;
	width: 100px;
	height: 40px;
	background: #9fb7d4;
	color: #fff;
}
.gnav ul li a:hover,
.gnav ul li a:active {
	background: #afc6e2;
}
.gnav::-webkit-scrollbar {
	height: 2px;
}
.gnav::-webkit-scrollbar-track {
	margin: 0 2px;
	background: #ccc;
	border-radius: 5px;
}
.gnav::-webkit-scrollbar-thumb {
	background: #d49fc2;
	border-radius: 5px;
}

 このように、横スクロールバーをスクロールしていないときでも表示するようにすれば、そのナビゲーションには続きがあるということがわかり、使う側にとっては使いやすくなるのではないでしょうか。ただし、こちらもwebkit系のブラウザのみの対応となり、また、1でご紹介しました-webkit-overflow-scrolling: touch;と併用するとスクロールバーのカスタマイズは無視されるようです。1と2を併用することができないのが残念です。

  • カテゴリー:Labs
  • facebook14
  • はてなブックマーク7
  • Google+1
  • Pocket0
  • Twitter0