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

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

  1. Home>
  2. ナビゲーション>
  3. ナビゲーションメニュー>
  4. 幕が上がるようなメニュー

ナビゲーションメニューmootools.v1.11.js

幕が上がるようなメニュー

スポンサードリンク
  • del.icio.us に登録
  • ライブドアクリップに追加
  • Google Bookmarks に追加
  • はてなブックマークに追加
  • Yahoo!ブックマークに登録
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無題ドキュメント</title>
<script type="text/javascript" src="mootoolsv111.js"></script> 
<script type="text/javascript" src="buttonflick.js"></script> 

<style> 
* {
  margin:0;
  padding:0; 
}
body {
  background-color:#FFF;
}
#nav {
  list-style:none;
  width:666px;
}
#nav li {
  float:left;
}
#nav a, #nav a .btn {/* メニューの基本的な設定 */
  width:187px;
  height:45px;
  margin-right:1px;
  text-align:center;
  padding-top:11px;
  text-decoration:none;
  font-family:Arial, sans-serif;
  font-weight:bold;
  letter-spacing:-1px;
}
#nav a {/* 最初の状態 */
  background:url(btn.png) no-repeat top left;
  display:block;
  color:#fff;
  font-size:0.9em;
  position:relative;
}
#nav a.active {/* 選択されている状態 */
  cursor:default;
}
#nav .btn {/* オンマウス */
  background:url(btn1.png) no-repeat top left;
  color:#6E6941;
}
</style> 
</head> 
<body> 
<ul id="nav"> 
  <li><a class="active" href="#">Home</a></li> 
  <li><a href="#">About</a></li> 
  <li><a href="#">Current page</a></li> 
</ul> 

</body> 
</html> 

オンマウスでまるで幕が上がるように画像がスライドするメニューです。
mootools.v1.11.jsを使用しています。
PNGデータの画像を使用するため、IE6ではちょっと汚い感じになりますが、デザイン上透過部分が必要なければ十分動作するでしょう。

mootoolのダウンロード

1バージョン古いものを使用するため、mootools.v1.11.js へ行きファイルをダウンロードしてきます。
ダウンロードボタンを押したら10秒後ぐらいにjsファイルへの直リンクが表示されるので、それをクリックしてダウンロードしてください。

<head>の設定

上記のファイルをアップロードしたら、適用させたいページのヘッダーへ読み込ませます。

<script type="text/javascript" src="mootoolsv111.js"></script> 

パスは任意で調節してください。
次に、動作の為のスクリプトを記述します。

var ButtonFlick = {
  start: function () {
    $$('#nav li a').each(function(el){
      if (el.hasClass('active')) return;
      var text = el.getText();
      var button = new Element('div', {'class':'btn'})
       .setText(text)
       .injectInside(el);
      var buttonfx = new Fx.Slide(button, {
        'wait':false,
        'transition':Fx.Transitions.Cubic.easeInOut,
        'duration':350
      });
      buttonfx.wrapper.setStyles({
        'position': 'absolute',
        'top': 0,
        'left': 0
      });
      el.addEvents({
        'mouseenter': function () {
          buttonfx.slideOut();         },
        'mouseleave': function () {
          buttonfx.slideIn();
        }
      });
    });
  }

window.addEvent('load', function(){   ButtonFlick.start();
}); 

#nav li a の箇所でターゲットを指定しています。
それから btn のところでオンマウス時のCSS設定を指定しています。
これをファイルにまとめて読み込ませるか、ヘッダーに直に記述します。 

CSSの設定

次はCSSの設定です。
これはサンプルのコードに簡単な説明を書いているので、そちらを参考にしてください。

HTMLコードの設定

コードの記述は簡単です。

<ul id="nav">
  <li><a class="active" href="#">Home</a></li>
  <li><a href="#">About</a></li>
  <li><a href="#">Current page</a></li>
  <li><a href="#">Contact</a></li>
</ul> 

javascriptで指定したIDを付加して通常通りのリストを作ります。
その際、class="active"と付加されたa要素は最初からオンマウス時の画像となります。 

関連スクリプト

感想

導入は簡単なので、ちょっとした気分転換にいいですかね。そんなに煩わしくないですし、ロールオーバーの一つとして捕らえられればいいかと思います。
IE6で使うにはPNGを透過するスクリプトでも読み込んでください。 

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

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

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