Creazy!

WEBエンジニア・ヤガーのテック・ガジェットブログ

JavaScript 小技集

MacのDock風メニューを縦方向にも設置できる「MacStyleDockPlus.js」

投稿日:


コリスさんで以下のスクリプトが紹介されていました。

MacStyleDock.jsは、Mac OS X風のドックをPrototypeやjQueryなどのライブラリを必要とせず実装できる、わずか3KBのスクリプトです。

via: [JS]Mac OS X風のドックを実装するスクリプト -MacStyleDock.js | コリス

Dock風メニューを実現するJSライブラリは今までにも存在していたんだけど、他のライブラリの依存がなくて軽量ってとこに引かれて試してみました。でも、自分がDockを左サイドに縦方向で表示しているのにこのスクリプトではそれができないのが悲しくて…。
それで昨晩、ついカッとなって縦方向にも表示できるようにハックしてみたので公開します。
Mac-style Dock (Plus) Demonstration
MacStyleDockPlus.js
Downloadとちょっとだけ解説は続きを読むで。

Download – ダウンロード

以下のリンクから右クリック→保存してください。
MacStyleDockPlus.js(10,113byte)Full version with comments
MacStyleDockPlus-compress.js(3,502byte)Compressed version
上はコメント付き、下はコメントなしですが、処理自体は同じです。

Usage – 使い方

まずは、外部JSを読み込みます。

<script type="text/javascript" src="js/MacStyleDockPlus-compress.js"></script>

次にDockを挿入したい位置に要素を配置します。

<div id="dock"></div>

HTMLはJS関数が生成するので要素の中身は空でいいです。(XHTML的には良くないけど)
最後にMacStyleDock関数を呼び出します。

var dock = new MacStyleDock(
document.getElementById('dock'), // 対象要素
[
{
name:'img/mac-icon-0-', // 画像パス
extension:'.jpg',       // 画像拡張子
sizes:[32,64],          // 画像サイズ[最小、最大]
onclick: function(){alert('You clicked on the 1st icon);} // 画像onclick時のイベント関数
},
{
name:'img/mac-icon-1-',
extension:'.jpg',
sizes:[32,64],
onclick: function(){alert('You clicked on the 2nd icon);}
}
],
32,   // 画像最小サイズ
64,   // 画像最大サイズ
2,    // ズームが影響するアイコン数(選択しているアイコンの隣何個まで影響させるか)
'top' // Dockの表示位置(top|right|bottom|left)default は bottom
);

今回追加したのは、一番最後のオプションであるPosition(Dockの表示位置)。
デフォルトはbottomになっていて、アイコンを触ると上方向にズームするんだけど、leftにすると左端にDockがある想定で右方向にズームします。rightはその反対。top(画面上部に固定)はMacのDockにもない表現(メニューバーが上にあるからね)なんだけどついでに付けました。サイトのグローバルナビゲーションなどを一番上に表示する場合に良いかもしれませんね。
Demoでは上下左右に4つ表示してますが、第1引数のElementを別名にさえすれば同じ画面にいくつでもDockを表示できますので、ソース参考にして下さい。

まとめ

本家のMacStyleDock.jsがPublic domainで公開されていたのでこのハックを公開する事ができます。
A Mac OS X-style Dock In JavaScript
すばらしいスクリプトを作成したSafalraに感謝です。
Special thanks for Safalra!
って、書いてたらIDEA*IDEAさんでも紹介エントリーが出ましたね。

マウスオーバーするたびにぐにゅーんって大きくなるのが気持ちいいですね。実装も簡単っぽいです。サンプルコードを見ながら試してみるのはいかがでしょうか。

via: マックOSのドック風のメニューが作れる『MacStyleDock.js』 | IDEA*IDEA

4873113296 JavaScript 第5版
David Flanagan 村上 列
オライリー・ジャパン 2007-08-14

by G-Tools

4844323644 まるごとJavaScript & Ajax ! Vol.1
天野 仁史 舘野 祐一 川崎 有亮
インプレスジャパン 2007-02-15

by G-Tools

-JavaScript, 小技集

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

ブログに埋め込んだFlickr画像に自動でEXIF情報を追加する「FlickrEx」がLazyLoadに対応!

ボクは写真が好きで、バックアップも兼ねてFlickrに全ての写真データをアップロードしているのですが、ブログに貼り付ける画像もFlickrにアップロードしたものを使っています。プロアカウントを持ってい …

no image

ブログデザインをリニューアルしました!これからはCreazy!

1年以上も寝かし続け、いっそなかった事にしようと思っていたリニューアルをついに公開しました! 4回に渡って実施されたブログデザイン勉強会の後押しもあり、途中脳内が血みどろになるほど苦労してここまでこぎ …

no image

第9回:閲覧しているサイトへのリンクタグを生成するブックマークレット

どうしてもっと早く気がつかなかったんだろう、と思うくらい便利なブックマークレットを思い付きました。既出かもしれないけど、公開しておきます。 ブログを書いていると、他のブログのエントリーへのリンクを貼っ …

no image

AmazonはTwitterで自由にアフィリエイトして良いとは言ってないっぽい

via: Amazon アソシエイト・プログラム(アフィリエイト) 公式ブログ: 「Twitterで共有」、始まりました! Amazonがアソシエイト・バーで公式に「Twitterで共有」機能を提供し …

Deliciousの被ブックマーク推移グラフを表示するURL見つけた

ボクは普段ソーシャルブックマークサービスはDeliciousを使っているんですが、ブログ用にブクマ数やグラフ、タグなんかを表示できるTagometerというブログパーツが用意されています。 With …

スポンサードリンク

スポンサードリンク