Итак, 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>JS: </body> </html>
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; }В итоге получим довольно симпатичную менюшку, пример можно посмотреть здесь
0 коммент.:
Отправить комментарий