Итак, HTML:
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Горизонтальное меню</title> <meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251" /> <link rel="stylesheet" type="text/css" href="css/slidemenu.css" /> </head> </body> </html>JS:
var arrowimages={down:['downarrowclass', 'img/down.gif', 23], right:['rightarrowclass', 'img/right.gif']}
var jqueryslidemenu={
animateduration: {over: 150, out: 100},
buildmenu:function(menuid, arrowsvar, type){
jQuery(document).ready(function($){
var $mainmenu=$("#"+menuid+">ul")
var $headers=$mainmenu.find("ul").parent()
$headers.each(function(i){
var $curobj=$(this)
var $subul=$(this).find('ul:eq(0)')
this._dimensions={w:this.offsetWidth, h:this.offsetHeight, subulw:$subul.outerWidth(), subulh:$subul.outerHeight()}
this.istopheader=$curobj.parents("ul").length==1? true : false
$subul.css({left:this.istopheader? this._dimensions.w+"px" : 0})
if (type==2)
{
$curobj.children("a:eq(0)")
/*
.css(this.istopheader? {paddingRight: "10"} : {}).append(
'
'
)
*/
}
else
{
$curobj.children("a:eq(0)")
/*
.css(this.istopheader? {paddingRight: arrowsvar.down[2]} : {}).append(
'
'
)*/
}
$curobj.hover(
function(e){
var $lala=$(this)
var $targetul=$(this).children("ul:eq(0)")
this._offsets={left:$(this).offset().left, top:$(this).offset().top}
$lala.css({})
if (type==2)
{
var menuleft=this._dimensions.w
$targetul.css({top:"0px"})
}
else
{
var menuleft=this.istopheader? 0 : this._dimensions.w
}
menuleft=(this._offsets.left+menuleft+this._dimensions.subulw>$(window).width())? (this.istopheader? -this._dimensions.subulw+this._dimensions.w : -this._dimensions.w) : menuleft
$targetul.css({left:menuleft+"px",width:this._dimensions.subulw+'px'}).slideDown(jqueryslidemenu.animateduration.over)
},
function(e){
var $targetul=$(this).children("ul:eq(0)")
$targetul.slideUp(jqueryslidemenu.animateduration.out)
}
)
})
$mainmenu.find("ul").css({display:'none', visibility:'visible'})
})
}
}
CSS: .jqueryslidemenu{
font: bold 10px Verdana;
/*background: #414141;*/
width: 940px;
margin:0 auto;
float: left;
margin-left: 200px;
}
.jqueryslidemenu ul{
margin: 0;
padding: 0;
list-style-type: none;
}
/*Top level list items*/
.jqueryslidemenu ul li{
position: relative;
display: inline;
float: left;
}
/*Top level menu link items style*/
.jqueryslidemenu ul li a{
display: block;
background: #d8efe2; /*background of tabs (default state)*/
color: #000;
padding: 4px 4px;
border-right: 1px solid #778;
border-bottom: 1px solid #778;
text-decoration: none;
}
* html .jqueryslidemenu ul li a{ /*IE6 hack to get sub menu links to behave correctly*/
display: inline-block;
}
.jqueryslidemenu ul li a:link, .jqueryslidemenu ul li a:visited{
color: black;
}
.jqueryslidemenu ul li a:hover{
background: #d8efe2; /*tab link background during hover state*/
color: #0f4f2b;
}
/*1st sub level menu*/
.jqueryslidemenu ul li ul{
position: absolute;
left: 0;
display: block;
visibility: hidden;
}
/*Sub level menu list items (undo style from Top level List Items)*/
.jqueryslidemenu ul li ul li{
display: list-item;
float: none;
}
/*All subsequent sub menu levels vertical offset after 1st level sub menu */
.jqueryslidemenu ul li ul li ul{
top: 0;
}
/* Sub level menu links style */
.jqueryslidemenu ul li ul li a{
font: normal 10px Verdana;
width: 160px; /*width of sub menus*/
padding: 5px;
margin: 0;
border-top-width: 0;
border-bottom: 1px solid gray;
border-left: 1px solid gray;
}
.jqueryslidemenuz ul li ul li a:hover{ /*sub menus hover style*/
background: #eff9ff;
color: black;
}
/* ######### CSS classes applied to down and right arrow images ######### */
.downarrowclass{
position: absolute;
top: 12px;
right: 7px;
}
.rightarrowclass{
position: absolute;
top: 6px;
right: 5px;
}
В итоге получим довольно симпатичную менюшку, пример можно посмотреть здесь
Читать далее ->