CSS Dock Menu(OSXのドック風メニュー)
CSS Dock Menu が何なのか分からない人はとり合えず Demo をご覧下さい。(上下に配置したアイコン群がそれ。)
では早速。
まず、 N.Design Studio というサイトから CSS Dock Menu をダウンロードします。(ページの上の方に Download CSS Dock Menu というリンクがあります。)
次に、Rapidweaver で CSS Dock Menu を挿入するページを作成します。今回は「HTMLコード」を使いました。とり合えずフォルダ名を「dock」、ファイル名を「index.html」とします。
ページインスペクタを開き、カスタムヘッダに以下のコードを挿入します。
<script type="text/javascript" src="js/jquery.js"></script>
<script
type="text/javascript" src="js/interface.js"></script>
<link
href="style.css" rel="stylesheet" type="text/css" />
.dock img { behavior: url(iepngfix.htc) }
HTML入力欄にはとりあえず以下のコードを入力した方がカスタムしやすいでしょう。#の所にリンク先のアドレスを入力すればメニューとして機能します。後は画像やテキストを編集して下さい。
ページ最上部にメニューを表示したい場合は…
<!--top dock -->
<div
class="dock" id="dock">
<div class="dock-container">
<a
class="dock-item" href="#"><img src="images/home.png" alt="home" /><span>Home</span></a>
<a
class="dock-item" href="#"><img src="images/email.png" alt="contact" /><span>Contact</span></a>
<a
class="dock-item" href="#"><img src="images/portfolio.png"
alt="portfolio" /><span>Portfolio</span></a>
<a
class="dock-item" href="#"><img src="images/music.png" alt="music" /><span>Music</span></a>
<a
class="dock-item" href="#"><img src="images/video.png" alt="video" /><span>Video</span></a>
<a
class="dock-item" href="#"><img src="images/history.png" alt="history" /><span>History</span></a>
<a
class="dock-item" href="#"><img src="images/calendar.png" alt="calendar" /><span>Calendar</span></a>
<a
class="dock-item" href="#"><img src="images/rss.png" alt="rss" /><span>RSS</span></a>
</div>
</div>
<!--dock menu JS
options -->
<script
type="text/javascript">
$(document).ready(
function()
{
$('#dock').Fisheye(
{
maxWidth:
50,
items:
'a',
itemsText:
'span',
container:
'.dock-container',
itemWidth:
40,
proximity:
90,
halign
: 'center'
}
)
}
);
</script>
ページ最下部にメニューを表示したい場合は…
<!--bottom dock -->
<div
class="dock" id="dock2">
<div class="dock-container2">
<a
class="dock-item2" href="#"><span>Home</span><img
src="images/home.png" alt="home" /></a>
<a
class="dock-item2" href="#"><span>Contact</span><img
src="images/email.png" alt="contact" /></a>
<a
class="dock-item2" href="#"><span>Portfolio</span><img
src="images/portfolio.png"
alt="portfolio" /></a>
<a
class="dock-item2" href="#"><span>Music</span><img
src="images/music.png" alt="music" /></a>
<a
class="dock-item2" href="#"><span>Video</span><img
src="images/video.png" alt="video" /></a>
<a
class="dock-item2" href="#"><span>History</span><img
src="images/history.png" alt="history" /></a>
<a
class="dock-item2" href="#"><span>Calendar</span><img
src="images/calendar.png" alt="calendar" /></a>
<a
class="dock-item2" href="#"><span>Links</span><img
src="images/link.png" alt="links" /></a>
<a
class="dock-item2" href="#"><span>RSS</span><img
src="images/rss.png" alt="rss" /></a>
<a
class="dock-item2" href="#"><span>RSS2</span><img
src="images/rss2.png" alt="rss" /></a>
</div>
</div>
<!--dock menu JS
options -->
<script
type="text/javascript">
$(document).ready(
function()
{
$('#dock2').Fisheye(
{
maxWidth:
60,
items:
'a',
itemsText:
'span',
container:
'.dock-container2',
itemWidth:
40,
proximity:
80,
alignment
: 'left',
valign:
'bottom',
halign
: 'center'
}
)
}
);
</script>
両方にメニューを表示したい場合は…
<!--top dock -->
<div
class="dock" id="dock">
<div class="dock-container">
<a
class="dock-item" href="#"><img src="images/home.png" alt="home" /><span>Home</span></a>
<a
class="dock-item" href="#"><img src="images/email.png" alt="contact" /><span>Contact</span></a>
<a
class="dock-item" href="#"><img src="images/portfolio.png"
alt="portfolio" /><span>Portfolio</span></a>
<a
class="dock-item" href="#"><img src="images/music.png" alt="music" /><span>Music</span></a>
<a
class="dock-item" href="#"><img src="images/video.png" alt="video" /><span>Video</span></a>
<a
class="dock-item" href="#"><img src="images/history.png" alt="history" /><span>History</span></a>
<a
class="dock-item" href="#"><img src="images/calendar.png" alt="calendar" /><span>Calendar</span></a>
<a
class="dock-item" href="#"><img src="images/rss.png" alt="rss" /><span>RSS</span></a>
</div>
</div>
<!--bottom dock
-->
<div
class="dock" id="dock2">
<div class="dock-container2">
<a
class="dock-item2" href="#"><span>Home</span><img
src="images/home.png" alt="home" /></a>
<a
class="dock-item2" href="#"><span>Contact</span><img
src="images/email.png" alt="contact" /></a>
<a
class="dock-item2" href="#"><span>Portfolio</span><img
src="images/portfolio.png"
alt="portfolio" /></a>
<a
class="dock-item2" href="#"><span>Music</span><img
src="images/music.png" alt="music" /></a>
<a
class="dock-item2" href="#"><span>Video</span><img
src="images/video.png" alt="video" /></a>
<a
class="dock-item2" href="#"><span>History</span><img
src="images/history.png" alt="history" /></a>
<a
class="dock-item2" href="#"><span>Calendar</span><img
src="images/calendar.png" alt="calendar" /></a>
<a
class="dock-item2" href="#"><span>Links</span><img
src="images/link.png" alt="links" /></a>
<a
class="dock-item2" href="#"><span>RSS</span><img
src="images/rss.png" alt="rss" /></a>
<a
class="dock-item2" href="#"><span>RSS2</span><img
src="images/rss2.png" alt="rss" /></a>
</div>
</div>
<!--dock menu JS
options -->
<script
type="text/javascript">
$(document).ready(
function()
{
$('#dock').Fisheye(
{
maxWidth:
50,
items:
'a',
itemsText:
'span',
container:
'.dock-container',
itemWidth:
40,
proximity:
90,
halign
: 'center'
}
)
$('#dock2').Fisheye(
{
maxWidth:
60,
items:
'a',
itemsText:
'span',
container:
'.dock-container2',
itemWidth:
40,
proximity:
80,
alignment
: 'left',
valign:
'bottom',
halign
: 'center'
}
)
}
);
</script>
次に、先程ダウンロードしたフォルダの中にある「style.css」を編集します。
まず、1行目の…
body {
font: 11px Arial, Helvetica, sans-serif;
background: #ffffff url(images/main-bg.gif);
padding: 0;
margin: 0;
}
次に、Dockの背景がいらない場合は以下の部分も削除していいと思います。(アイコンに透過画像が使われていますが、カスタムCSSに記入したコードによりIE6でも透過画像が正常に機能するようになっているようです。ただし、最下部に配した場合は表示が乱れる気が…。ウチのWin機のメモリが足りないだけかもしれませんが…。)
.dock-container {
position: absolute;
height: 50px;
background: url(images/dock-bg2.gif);<!---
←コレと --->
padding-left: 20px;<!--- ←今回はコレも削除しました
--->
}
.dock-container2 {
position: absolute;
height: 50px;
background: url(images/dock-bg.gif);<!---
←コレと --->
padding-left: 20px;<!--- ←今回はコレも削除しました
--->
}
注意しなければならのいのが、ドックを最下部に表示する場合。CSS Dock Menu は、最下部に表示する為に position: absolute を使っているのですが、Rapidweaver は始めから footer 領域を持っているのでドックとフッタが重なってしまいます。ですので以下の部分を調整して使っているテーマで正しく表示出来るようにして下さい。(テーマによって違うみたいです。)
#dock2 {
width: 100%;
bottom: 0px;
position: absolute;
left: 0px;
}
今回はこのようにしました。
#dock2 {
width: 100%;
bottom: 0px;
position: absolute;
left: 120px;
}
最下部に表示する為に position: absolute を使っているので、サイドバーを配置していても当然それも無視されます。style.css をデフォルトで使うと、最下部に表示するドックは、恐らく画面の左下に表示されますので、そこにサイドバーがある場合は重なってしまっていると思います。そうではない場合でもレイアウトは崩れているはずです。今回その部分を調整しましたが、お世辞にもスマートに表示する方法はわかりませんでした。(他に表示する方法があると思います。)
最後に、ダウンロードしたフォルダの中の「HTMLファイル」以外をすべて、ページと同じ階層にアップします。今回の例で言うと「dock」フォルダにアップして下さい。一応書いておくと、「dock」フォルダの中に…
- index.html(今回の例で言うとサンプルページ)
- images(フォルダ)
- js(フォルダ)
- iepngfix.htc
- style.css
以上ですが、正直あまり自信はありません(笑)。
今回作成したサンプルです。
関連リンク:【coliss】MacOS Xのドック風エフェクト(fisheye)を実現するライブラリ集
【このエントリに使ったプラグイン・ツール】
- プラグイン:High-Light





