olidStateEveryday - Ajax,javascript,UIサンプルとチュートリアル -

Ajax,Javascript、サイト内の移動を効率的にナビゲーションするスクリプトサンプル設置方法

  1. Home>
  2. ナビゲーション>
  3. ツリー型メニュー>
  4. iPodみたいなメニュー

ツリー型メニューjquery-1.3.2.min.js

iPodみたいなメニュー

スポンサードリンク
  • del.icio.us に登録
  • ライブドアクリップに追加
  • Google Bookmarks に追加
  • はてなブックマークに追加
  • Yahoo!ブックマークに登録
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Filament Group Lab</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    
    <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="fg.menu.js"></script>
    
    <link type="text/css" href="fg.menu.css" media="screen" rel="stylesheet" />
    <link type="text/css" href="theme/ui.all.css" media="screen" rel="stylesheet" />
    
    <!-- styles for this example page only -->
	<style type="text/css">
	body { font-size:62.5%; margin:0; padding:0; }
	#menuLog { font-size:1.4em; margin:20px; }
	.hidden { position:absolute; top:0; left:-9999px; width:1px; height:1px; overflow:hidden; }
	
	.fg-button { clear:left; margin:0 4px 40px 20px; padding: .4em 1em; text-decoration:none !important; cursor:pointer; position: relative; text-align: center; zoom: 1; }
	.fg-button .ui-icon { position: absolute; top: 50%; margin-top: -8px; left: 50%; margin-left: -8px; }
	a.fg-button { float:left;  }
	button.fg-button { width:auto; overflow:visible; } /* removes extra button width in IE */
	
	.fg-button-icon-left { padding-left: 2.1em; }
	.fg-button-icon-right { padding-right: 2.1em; }
	.fg-button-icon-left .ui-icon { right: auto; left: .2em; margin-left: 0; }
	.fg-button-icon-right .ui-icon { left: auto; right: .2em; margin-left: 0; }
	.fg-button-icon-solo { display:block; width:8px; text-indent: -9999px; }	 /* solo icon buttons must have block properties for the text-indent to work */	
	
	.fg-button.ui-state-loading .ui-icon { background: url(spinner_bar.gif) no-repeat 0 0; }
	</style>
	
	<!-- style exceptions for IE 6 -->
	<!--[if IE 6]>
	<style type="text/css">
		.fg-menu-ipod .fg-menu li { width: 95%; }
		.fg-menu-ipod .ui-widget-content { border:0; }
	</style>
	<![endif]-->	
    
    <script type="text/javascript">    
    $(function(){
		
		$('#hierarchybreadcrumb').menu({
			content: $('#hierarchybreadcrumb').next().html(),
			width: 400, // 開いたメニューの横幅
			maxHeight: 200, // 開いたメニューの最大縦幅
			showSpeed: 200, // メニューを開くスピード
			backLink: false // 削除すると戻るリンクが出現してパンくずが消えます
		});
		
    });
    </script>
    
</head>

<body>
<div style="height:400px">

<a tabindex="0" href="#news-items-2" class="fg-button fg-button-icon-right ui-widget ui-state-default ui-corner-all" id="hierarchybreadcrumb"><span class="ui-icon ui-icon-triangle-1-s"></span>iPodみたいなメニュー</a>
<div id="news-items-2" class="hidden">
<ul>
	<li><a href="#">Breaking News</a>
		<ul>
			<li><a href="#">Entertainment</a></li>
			<li><a href="#">Politics</a></li>
			<li><a href="#">A&amp;E</a></li>
			<li><a href="#">Sports</a>
				<ul>
					<li><a href="#">Baseball</a></li>
					<li><a href="#">Basketball</a></li>
					<li><a href="#">A really long label would wrap nicely as you can see</a></li>
					<li><a href="#">Swimming</a>
						<ul>
							<li><a href="#">High School</a></li>
							<li><a href="#">College</a></li>
							<li><a href="#">Professional</a>
								<ul>
									<li><a href="#">Mens Swimming</a>
										<ul>
											<li><a href="#">News</a></li>
											<li><a href="#">Events</a></li>
											<li><a href="#">Awards</a></li>
											<li><a href="#">Schedule</a></li>
											<li><a href="#">Team Members</a></li>
											<li><a href="#">Fan Site</a></li>
										</ul>
									</li>
									<li><a href="#">Womens Swimming</a>
										<ul>
											<li><a href="#">News</a></li>
											<li><a href="#">Events</a></li>
											<li><a href="#">Awards</a></li>
											<li><a href="#">Schedule</a></li>
											<li><a href="#">Team Members</a></li>
											<li><a href="#">Fan Site</a></li>
										</ul>
									</li>
								</ul>
							</li>
							<li><a href="#">Adult Recreational</a></li>
							<li><a href="#">Youth Recreational</a></li>
							<li><a href="#">Senior Recreational</a></li>
						</ul>
					</li>
					<li><a href="#">Tennis</a></li>
					<li><a href="#">Ice Skating</a></li>
					<li><a href="#">Javascript Programming</a></li>
					<li><a href="#">Running</a></li>
					<li><a href="#">Walking</a></li>
				</ul>
			</li>
			<li><a href="#">Local</a></li>
			<li><a href="#">Health</a></li>
		</ul>
	</li>
	<li><a href="#">Entertainment</a>
	<ul>
		<li><a href="#">Celebrity news</a></li>
		<li><a href="#">Gossip</a></li>
		<li><a href="#">Movies</a></li>
		<li><a href="#">Music</a>
		<ul>
			<li><a href="#">Alternative</a></li>
			<li><a href="#">Country</a></li>
			<li><a href="#">Dance</a></li>
			<li><a href="#">Electronica</a></li>
			<li><a href="#">Metal</a></li>
			<li><a href="#">Pop</a></li>
			<li><a href="#">Rock</a>
				<ul>
					<li><a href="#">Bands</a>
						<ul>
							<li><a href="#">Dokken</a></li>
						</ul>
					</li>
					<li><a href="#">Fan Clubs</a></li>
					<li><a href="#">Songs</a></li>
				</ul>
			</li>
		</ul>
		</li>
		<li><a href="#">Slide shows</a></li>
		<li><a href="#">Red carpet</a></li>
	</ul>
	</li>
	<li><a href="#">Finance</a>
	<ul>
		<li><a href="#">Personal</a>
		<ul>
			<li><a href="#">Loans</a></li>
			<li><a href="#">Savings</a></li>
			<li><a href="#">Mortgage</a></li>
			<li><a href="#">Debt</a></li>
		</ul>
		</li>
		<li><a href="#">Business</a></li>
	</ul>
	</li>
	<li><a href="#">Food &#38; Cooking</a>
	<ul>
		<li><a href="#">Breakfast</a></li>
		<li><a href="#">Lunch</a></li>
		<li><a href="#">Dinner</a></li>
		<li><a href="#">Dessert</a>
			<ul>
				<li><a href="#">Dump Cake</a></li>
				<li><a href="#">Doritos</a></li>
				<li><a href="#">Both please.</a></li>
			</ul>
		</li>
	</ul>
	</li>
	<li><a href="#">Lifestyle</a></li>
	<li><a href="#">News</a></li>
	<li><a href="#">Politics</a></li>
	<li><a href="#">Sports</a>
		<ul>
			<li><a href="#">Baseball</a></li>
			<li><a href="#">Basketball</a></li>
			<li><a href="#">Swimming</a>
			<ul>
				<li><a href="#">High School</a></li>
				<li><a href="#">College</a></li>
				<li><a href="#">Professional</a>
				<ul>
					<li><a href="#">Mens Swimming</a>
					<ul>
							<li><a href="#">News</a></li>
							<li><a href="#">Events</a></li>
							<li><a href="#">Awards</a></li>
							<li><a href="#">Schedule</a></li>
							<li><a href="#">Team Members</a></li>
							<li><a href="#">Fan Site</a></li>
						</ul>
					</li>
					<li><a href="#">Womens Swimming</a>
					<ul>
						<li><a href="#">News</a></li>
						<li><a href="#">Events</a></li>
						<li><a href="#">Awards</a></li>
						<li><a href="#">Schedule</a></li>
						<li><a href="#">Team Members</a></li>
						<li><a href="#">Fan Site</a></li>
					</ul>
					</li>
				</ul>
				</li>
				<li><a href="#">Adult Recreational</a></li>
				<li><a href="#">Youth Recreational</a></li>
				<li><a href="#">Senior Recreational</a></li>
			</ul>
			</li>
			<li><a href="#">Tennis</a></li>
			<li><a href="#">Ice Skating</a></li>
			<li><a href="#">Javascript Programming</a></li>
			<li><a href="#">Running</a></li>
			<li><a href="#">Walking</a></li>
		</ul>
		</li>
	</ul>
</div>
</div>
</body>
</html>

iPodみたいなドリルダウンメニューを実装できるスクリプト。
メニューのパターンは4つあり今回はパンくずナビ付きのものを紹介します。
jQueryフレームワークを使用し、テーマチェンジャーを使用することでメニューのスタイルを変更できますが、jQueryUIも読み込まなくてはなりません。 

1.ダウンロード/セッティング

サイトへ行きfg-menu.zipをダウンロードしてきてください。
(Download the script, CSS, and sample HTMLをクリック)
解答したら、themeフォルダ、fg.menu.css、fg.menu.js、jquery-1.3.2.min.js を任意の場所へアップしてください。

2.<head>設定

まず.jsファイルを読み込ませます。

<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="fg.menu.js"></script> 

続いてCSSを読み込ませます。

 

<link type="text/css" href="fg.menu.css" media="screen" rel="stylesheet" />
<link type="text/css" href="theme/ui.all.css" media="screen" rel="stylesheet" /> 

次にこのページのサンプルの「CODE」を開いて、<head>内にある<style type="text/css"> ~ </style>内に書き込まれているCSSをコピペして貼り付けてください。

 

最後にトリガーの記述を行います。

<script type="text/javascript">
    $(function(){
        $('#hierarchybreadcrumb').menu({
        content: $('#hierarchybreadcrumb').next().html(),

        width: 400, // 開いたメニューの横幅

        maxHeight: 200, // 開いたメニューの最大縦幅

        showSpeed: 200, // メニューを開くスピード

        backLink: false // 行ごと削除すると戻るリンクが出現してパンくずが消えます

});
    });
</script> 

#hierarchybreadcrumbはHTMLのターゲットにつけるID名です。
メニューを調整する値についてはコメントを参考にしてください。

3.HTMLマークアップ

プルダウンは<a>タグによって表示されます。

<a tabindex="0" href="#news-items-2" class="fg-button fg-button-icon-right ui-widget ui-state-default ui-corner-all" id="hierarchybreadcrumb"><span class="ui-icon ui-icon-triangle-1-s"></span>iPodみたいなメニュー</a> 

次に<div>でドロップする範囲を作成します。

<div id="news-items-2" class="hidden">
</div> 

この<div>の間に<ul>メニューを入れ子にしてドロップメニューを作成しています。

テーマをオリジナルで作成する場合は、themeフォルダ内ui.theme.cssファイルの「/* Interaction states」コメントタグあたりを参考にして下さい。

関連スクリプト

感想

iPodは使ったことがないので「みたいな」と言われても実感わかないのですが、省スペースでこれだけ操作性に優れたメニューは他にないと思います。
テーマチェンジャーで変えられるスタイルはUIから読み込んでいると思いますが、デフォルトのものを変更するだけでもテーマは変えられます。 

スクリプトの使用について

SolidStateEverydayでご紹介しているAjax,Javascript等のスクリプトをご利用になる場合は、必ず製作元のサイトで使用ライセンスを確認してください。ご利用は自己責任でお願い致します。

結局、エックスサーバーなんですよね。