Javascript Fisheye Menu

In my previous post i mentioned about a homepage site i had created. In that site i used a fisheye menu. Fisheye menus are a very good way to display many links or icons but still being able to see them. I got the idea from a book call "Designing the user interface" by Ben Schneiderman which is a book i would recomend to anyone.

I thought i would just break down this script so that you can all use them in your websites. They are not only a benefit to Human Computer Interaction, but they also look pretty good.

First of all you need to create the menu.

<div id="fisheye2" class="fisheye">
      <div class="fisheyeContainter">
         <a href="http://www.facebook.com" class="fisheyeItem2"><img src="http://home.cfproject.co.uk/Images/FaceBook-128x128.png" width="128" /><span>Facebook</span></a>
         <a href="http://www.google.co.uk" class="fisheyeItem2"><img src="http://home.cfproject.co.uk/Images/Google-128x128.png" width="128" /><span>Google</span></a>
         <a href="http://www.youtube.com" class="fisheyeItem2"><img src="http://home.cfproject.co.uk/Images/Youtube-128x128.png" width="128" /><span>Youtube</span></a>
</div>
</div>

This is just a series of nested <div> tags.

They we addd the css to make the menu look presentable.

<style type="text/css">
.fisheye{
   text-align: center;
   height: 50px;
   position: relative;
}
a.fisheyeItem
{
   text-align: center;
   color: #000;
   font-weight: bold;
   text-decoration: none;
   width: 40px;
   position: absolute;
   display: block;
   top: 0;
}
a.fisheyeItem2
{
   text-align: center;
   color: #000;
   font-weight: bold;
   text-decoration: none;
   width: 40px;
   position: absolute;
   display: block;
   bottom: 0;
}
.fisheyeItem img
{
   border: none;
   margin: 0 auto 5px auto;
   width: 100%;
}
.fisheyeItem2 img
{
   border: none;
   margin: 5px auto 0 auto;
   width: 100%;
}
.fisheyeItem span,
.fisheyeItem2 span
{
   display: none;
   positon: absolute;
}
.fisheyeContainter
{
   height: 50px;
   width: 500px;
   left: 0px;
   position: absolute;
}
#fisheye2
{
   position: absolute;
   width: 98%;
   bottom: 0px;
}
</style>

Now the menu looks presentable we need to add a script at the bottom of the page that will call functions in a javascript file when users hover near the icons.

<script type="text/javascript">
   
   $(document).ready(
      function()
      {
         $('#fisheye2').Fisheye(
            {
               maxWidth: 70,
               items: 'a',
               itemsText: 'span',
               container: '.fisheyeContainter',
               itemWidth: 60,
               proximity: 90,
               alignment : 'left',
               valign: 'center',
               halign : 'center'
            }
         )
      }
   );

</script>

Now all we need to do is include the two javascript files at the top of the page. This script can be used in any language as it is javascript based, all you need to do is include the two javescript files.

<script type="text/javascript" src="/ColdfusionSamples/Fisheye/js/jquery.js"></script>
<script type="text/javascript" src="/ColdfusionSamples/Fisheye/js/interface.js"></script>

Here is an example of the finished script

Related Blog Entries

Comments
sky's Gravatar this doesn't work for me. where do i put the css?if i put it inside the head or the body, the links disappears.
# Posted By sky | 15/03/09 13:37
hinsel's Gravatar any way to edit/remove the black border around the images? i have yet to find it after much poking around...??
# Posted By hinsel | 24/08/09 21:33
Anonymous's Gravatar Christian Louboutin is very successful in the area of <b><a href=http://www.shoeschristian.com/>Louboutin Shoes</a></b>
. The <b><a href=http://www.shoeschristian.com/christian-louboutin-... Louboutin Pumps</a></b>
which are designed by him are so special. Looking at the gorgeous <b><a href=http://www.shoeschristian.com/christian-louboutin-... Louboutin Boots</a></b>
, I smiled. Since then, <b><a href=http://www.shoeschristian.com/christian-louboutin-... Louboutin Sandals</a></b>
became a best friend of mine.
# Posted By Anonymous | 04/08/10 10:42
timberland shoe company's Gravatar We are traveling by train. Out timberland hiking boots windows, we drink in the passing scene of cars on nearby highways, of children timberland shoe company waving at a crossing, of cattle grazing on a distant timberland boots hillside, of smoke pouring from a power plant, of row upon row of corn and wheat, of flatlands and timberland wheat shoes valleys, of mountains and rolling classic 3 eye timberland boat hillsides, of city skylines and village halls.But uppermost in our black timberland boots minds is the final destination.
# Posted By timberland shoe company | 28/08/10 07:41

Archives By Subject

Advertising (4) [RSS]
Blog Design (1) [RSS]
CFProject Scripts (2) [RSS]
Coldfusion Charts (3) [RSS]
Coldfusion Functions (5) [RSS]
Coldfusion Overview (1) [RSS]
Coldfusion Tutorials (16) [RSS]
For Sale (2) [RSS]
Image Manipulation (1) [RSS]
Java (1) [RSS]
JavaScript (4) [RSS]
PHP (1) [RSS]
Railo (4) [RSS]
SQL (1) [RSS]
Useful Tools (3) [RSS]

Recent Comments

Coldfusion and Java
nike air max shoes said: Free shipping buy coach handbags in coach outlet online,save up 76%,[url=http://www.coachhandbags-...... [More]

Coldfusion and Java
coach handbags said: These four pairs are all from Sergio Rossi. And their color is all can match well with your wedding ... [More]

Select Last Number In Access
coach handbags said: These four pairs are all from Sergio Rossi. And their color is all can match well with your wedding ... [More]

Select Last Number In Access
nike air max shoes said: Free shipping buy coach handbags in coach outlet online,save up 76%,[url=http://www.coachhandbags-...... [More]

Unlimited Website Hosting
nike air max shoes said: Free shipping buy coach handbags in coach outlet online,save up 76%,[url=http://www.coachhandbags-...... [More]

Recent Entries

No recent entries.
ColdFusion Blog | ColdFusion Hosting | ColdFusion Q & A