CSS Dock Menu
May 8th, 2007 Filed in: Design, Mac Jump to comments
If you are a big Mac fan, you will love this CSS dock menu that I designed. It is using Jquery Javascript library and Fisheye component from Interface and some of my icons. It comes with two dock styles - top and bottom. This CSS dock menu is perfert to add on to my iTheme. Here I will show you how to implement it to your web page.
Download CSS Dock Menu
(View Demo)
Zip package included JS, CSS, and icons
1. Download source files
Download the CSS dock menu zip package.
2. Insert code
In between the HTML <head> tag, add the following code
<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" />
<!--[if lt IE 7]>
<style type="text/css">
.dock img { behavior: url(iepngfix.htc) }
</style>
<![endif]–>
The first part is the Javascript, second part is CSS stylesheet, and last part is the PNG hack for IE 6.
3. Configuration
Don’t forget to add the following code to anywhere within the <body> tag:
<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>
4. Add or remove item
To add menu item to the top dock (note: span tag is after the img tag):
<a class="dock-item" href="#"><img src="images/home.png" alt="home" /><span>Home</span></a>
To add menu item to the bottom dock (note: span tag is before the img tag):
<a class="dock-item2" href="#"><span>Home</span><img src="images/home.png" alt="home" /></a>
Browser Compatibility
I have tested on IE 6, IE 7, Opera 9, Firefox 2, and Safari 2 (although there are some minor rendering issues with Safari).

May 9th, 2007 at 6:37 pm
It’s cool. Very nice. No comment.
May 9th, 2007 at 5:52 pm
I think the icons and general design look great. However, I have several misgivings about this post:
1) This is quite inaccurately named, since the bulk of the effect is done through JavaScript and inline images. There’s very little CSS involved, and none for the effect itself. This leads to confusion (as seen in some of the comments) that it’s done mainly through CSS.
2) Why is the $(document).ready(); script block in the body? You’re not promoting very good separation of behaviour and structure with that. Works just the same in the head, and it’s tidier.
3) This is aimed the commenters: This is not his JavaScript work, as he’s said in the post. He only reskinned it, for the most part. That also means the various bug complaints should be sent to the Interface website (there’s a link in the post).
I made a similar comment on jquery.com
Anyways, good work, otherwise. Nice to see others use jQuery. Your site design looks great, and you’ve hit all the right spots with semantics, etc., fellow Torontonian. :)
May 9th, 2007 at 4:37 pm
The menu is rendered pretty useless with JavaScript disabled. With both JavaScript and CSS disabled, however, everything works. More work should be invested in getting all 3 combinations (4 if you include images, but those work here) work. The alt text on the images can probably just be dropped since the same text is repeated inside the anchor, so alt=”" would suffice. No need to listen to “Image: home. Home.” in JAWS when “Home” suffices.
Other than that: Pretty sweet, indeed! :-)
May 9th, 2007 at 4:32 pm
its A-M-A-Z-I-N-G!!
May 9th, 2007 at 4:20 pm
Pretty cool you can replicate this on the web.
For some reason, I like the Magnification effect on the web much better than on OSX where I have it turned off…
May 9th, 2007 at 3:59 pm
The free download includes some of the icons that you sell elsewhere - how can we use them ?
May 9th, 2007 at 3:08 pm
Bah en gros mon ami l’Abbai voulai dire “Mais c’est pas possible sa !!, quel con “^^
May 9th, 2007 at 2:21 pm
ALREADY BEEN DONE. Check out the Dojo Javascript Toolkit. Good job reinventing the wheel though. That takes a little skill, I suppose.
May 9th, 2007 at 1:51 pm
You are amazing :D
May 9th, 2007 at 1:05 pm
I’ll chime in. This is pretty freakin’ sweet. But as others mentioned, calling this a “CSS Dock Menu” is just poor form. There is clearly more JavaScript at work. Nevertheless, still cool.