jQuery实现多级手风琴菜单

手风琴菜单一般用于下拉导航,由于外观非常简洁,使用起来跟手风琴一样可以拉伸和收缩而得名,项目中适当应用手风琴效果会给用户带来非常好的体验。本文借助jQuery插件轻松打造一个非常不错的手风琴效果的菜单。

HTML

首先在head间引用jQuery和插件。

  1. <script type="text/javascript" src="js/jquery.js"></script> 
  2. <script type="text/javascript" src="js/accordion.js"></script> 

接着,在body间写上菜单主体代码,HTML代码将由一系列无序列表组成。

  1. <ul class="nav"> 
  2.    <li><a href="http://www.helloweba.com">首页</a></li> 
  3.    <li><a href="#">服务</a></li> 
  4.    <li><a href="#">案例</a></li> 
  5.    <li><a href="#">文章</a></a> 
  6.         <ul> 
  7.            <li><a href="#" target="_blank">XHTML/CSS</a></li> 
  8.            <li><a href="#">Javascript/Ajax/jQuery</a> 
  9.                 <ul> 
  10.                     <li><a href="#">Cookies</a></li> 
  11.                     <li><a href="#">Event</a></li> 
  12.                     <li><a href="#">Games</a></li> 
  13.                     <li><a href="#">Images</a></li> 
  14.                 </ul> 
  15.             </li> 
  16.             <li><a href="#" target="_blank">PHP/MYSQL</a></li> 
  17.             <li><a href="#" target="_blank">前端观察</a></li> 
  18.             <li><a href="#" target="_blank">HTML5/移动WEB应用</a></li> 
  19.         </ul> 
  20.     </li> 
  21.     <li><a href="#">关于</a></li> 
  22. </ul> 

CSS

当然,我们要为这个无序列表加上样式,让它非常简洁的呈现在屏幕上。

  1. .nav {width: 213px; padding: 40px 28px 25px 0;}  
  2. ul.nav {padding: 0; margin: 0; font-size: 1em; line-height: 0.5em; list-style: none;}  
  3. ul.nav li {}  
  4. ul.nav li a {line-height: 10px; font-size: 14px; padding: 10px 5px; color: #000; display: block; 
  5. text-decoration: none; font-weight: bolder;} 
  6. ul.nav li a:hover {background-color:#675C7C;    color:white;} 
  7. ul.nav ul { margin: 0; padding: 0;display: none;}  
  8. ul.nav ul li { margin: 0; padding: 0; clear: both;}  
  9. ul.nav ul li a { padding-left: 20px; font-size: 12px; font-weight: normal;} 
  10. ul.nav ul li a:hover {background-color:#D3C99C; color:#675C7C;}  
  11. ul.nav ul ul li a {color:silver; padding-left: 40px;}  
  12. ul.nav ul ul li a:hover { background-color:#D3CEB8; color:#675C7C;}  
  13. ul.nav span{float:right;} 

jQuery

调用accordion插件,设置相关属性,一个漂亮的手风琴效果就完成了。

  1. $(function(){ 
  2.    $(".nav").accordion({ 
  3.         speed: 500, 
  4.         closedSign: '[+]'
  5.         openedSign: '[-]' 
  6.     }); 
  7. }); 

Accordion提供以下选项设置:

speed:数字毫秒,设置菜单展开和关闭的时间。

closedSign:当下级菜单关闭时,显示于菜单旁边的内容,可以是任意html或者text。

openedSign:当下级菜单展开时,显示于菜单旁边的内容,可以是任意html或者text。

注意,如果你想菜单初始载入时就展开的话,可以在对应要展开的li上加class="active"。

转载请注明:代码家园 » jQuery实现多级手风琴菜单

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)