当前位置:  编程技术>jquery

jquery 无限分级的下拉菜单

    来源: 互联网  发布时间:2014-09-03

    本文导语:  jquery 无限分级下拉菜单的效果图,如下: 此菜单的作用与特点: 1.自动排序 本菜单则可以在一直输出一个class定义的下拉菜单,无需对多级菜单定义。 2.自动添加下拉指示 只需要在css中定义好下拉效果的样式,代码会自动...

jquery 无限分级下拉菜单的效果图,如下:

此菜单的作用与特点:

1.自动排序
本菜单则可以在一直输出一个class定义的下拉菜单,无需对多级菜单定义。

2.自动添加下拉指示
只需要在css中定义好下拉效果的样式,代码会自动寻找下拉菜单并且添加指示箭头

3.菜单动画执行效果修复
本菜单解决了鼠标滑过的次数很多,会看到下拉菜单不停的展开收起展开收起的问题,增强了用户体验。

4.自动排列
本代码会对下拉菜单进行自动排列,无需单独进行设置,css也简单高效,兼容效果也不错。用到的图片也比较少。

建议的结构:
 


     
  • 主导航

  •  
  • 主导航
     

        
    • 二级菜单
         

            
      • 三级菜单

      •     
      • 三级菜单

      •    

        

    •   
    • 二级菜单

    •   
    • 二级菜单

    •   
    • 二级菜单

    •  

     

  •  
  • 主导航

  •  
  • 主导航

我在案例中的结构也是这样的:
 

代码示例:

css部分:
 

代码示例:


/*去掉默认html样式*/
a { text-decoration:none; }
ul, li { list-style:none; margin:0; padding:0; }

/*定义主导航*/
.nav li { background:#111; color:#fff; height:30px; line-height:30px; position:relative; float:left; margin-right:5px; width:100px; text-align:center; font-family:Arial, Helvetica, sans-serif; }
.nav li a { color:#fff; font-size:14px; display:block; }

/*下拉菜单样式*/
ul.sub_menu { position:absolute;width:100px; display:none; z-index:999; }
.nav li ul.sub_menu li { background:none; color:#555; font-size:12px; border-bottom:1px #333 solid; position:relative; width:100px; height:30px; }
.nav li ul.sub_menu li.last { border-bottom:none; } /*js会对最后一个li添加该class,去掉border-bottom效果*/
.nav li ul.sub_menu li a { background:#222; color:#888; display:block;height:30px; }
.nav li ul.sub_menu li a:hover, .nav li ul.sub_menu li a.now { background:#f90;color:#fff;}
.nav li.now,.nav li.current { background:#f60;color:#fff;}

/*如果有下拉菜单添加的class*/
.hasmenu { background:url(/blog_article/arrow.png) no-repeat right; padding-right:15px;}/*主导航箭头向下*/
.nav li a.hasmenu { background-position:right -30px;}/*下拉菜单箭头向右*/
.nav li ul.sub_menu li a.hasmenu { background:#222 url(/blog_article/arrow.png) no-repeat right top;}
.nav li ul.sub_menu li a.hasmenu:hover { background:#f90 url(/blog_article/arrow.png) no-repeat right top; color:#fff;}

然后是js对菜单的修饰。
首先,需要引入jquery.js,然后,才是本菜单的js调用:
 

代码示例:

$(document).ready(function(){
 //为导航设置默认高亮 与本菜单无关
 $("ul.nav li.nav_li:eq(0)").addClass("current")
 
 /*jquery menu 开始/
 //为子菜单的最后一个li添加样式,适合为li添加下划线时去除最后一个的下划线
 $(".sub_menu").find("li:last-child").addClass("last")
 
 //遍历全部li,判断是否包含子菜单,如果包含则为其添加箭头指示状态
 $(".nav li").each(function(){
 if($(this).find("ul").length!=0){$(this).find("a:first").addClass("hasmenu")}
 })
 
 //
 $(".nav li").hover(function(){
  $(this).addClass("now");
  var menu = $(this);
  mst = setTimeout(function(){
  menu.find("ul.sub_menu:first").slideDown("slow");
  mst = null;
  },500);
 },function(){
  $(this).removeClass("now");
  if(mst!=null)clearTimeout(mst);
  $(this).find("ul.sub_menu:first").slideUp("slow")
 });
 
 var submenu = $(".sub_menu").find(".sub_menu")
 submenu.css({left:"100px",top:"0px"})
 $(".sub_menu li").hover(function(){
  $(this).find("a:first").addClass("now")
  submst = setTimeout(function(){
  $(this).find("ul:first").slideDown("slow");
  submst = null;
  },500)
 },function(){
  $(this).find("a:first").removeClass("now")
  if(submst!=null)clearTimeout(submst);
  $(this).find("ul:first").slideUp("slow")
 });
/*jquery menu 结束/
})

效果和本文顶部的效果一致,slideDown,slideUp是展开收起的效果,可以替换为其他特效如fadeIn和fadeOut等。


    
 
 

您可能感兴趣的文章:

  • jQuery 下拉菜单插件 jQuery menu-aim
  • jQuery下拉菜单插件 jQuery Simple Drop Down Menu
  • jquery下拉菜单效果 jquery点击弹出下拉菜单的例子
  • jQuery联动下拉框 jQuery optionTree
  • jQuery下拉选择插件 MagicCombo
  • jQuery下拉框美化插件 Select-or-Die
  • jQuery下拉框插件 FlexBox
  • jQuery 下拉列表插件 Heapbox
  • jQuery 下拉框插件 Selectik
  • jQuery 下拉菜单插件 menu-aim
  • jQuery下拉组件 ddSlick
  • jQuery下拉列表插件 jQselectable
  • jQuery 下拉列表 Custom Drop
  • jQuery水平下拉菜单 jMenu
  • jQuery下拉框插件 mcDropdown
  • 巧用jquery解决下拉菜单被Div遮挡的相关问题
  • jQuery下拉菜单插件 jbar
  • jQuery自定义下拉列表 DropKick
  • jquery easyui自定义下拉框列表
  • jQuery操作select下拉框的text值和value值的方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jQuery右键菜单插件 jQuery ContextMenu
  • jQuery上下文菜单插件 jquery-simple-context-menu
  • jQuery菜单插件 Dmenu jQuery Plugin
  • jQuery 菜单插件 jVanilla Menu
  • jQuery响应式侧栏菜单插件 sidr
  • jQuery树型菜单 MagicDTree
  • 抽屉式菜单 jQuery.mmenu
  • jQuery菜单插件 Superfish
  • jQuery卷帘菜单插件 HoverAccordion
  • 侧边栏菜单插件 jQuery SideBar Plugin
  • jQuery菜单插件 Smooth Navigational Menu
  • jQuery多层级菜单插件 DD Mega Menu
  • jQuery 禁用右键菜单的简单代码
  • jQuery 导航菜单 FlexNav
  • jQuery 动画菜单 aMenu
  • jQuery菜单插件 mbMenu
  • jQuery导航菜单插件 AutoSprites
  • jQuery可折叠菜单 Accordion Menu script
  • jQuery 菜单插件 AnimatedBorderMenus
  • jQuery 菜单插件 Square Menu
  • 通过javascript库JQuery实现页面跳转功能代码
  • jQuery鼠标动画插件 jquery-ahover
  • jQuery概述,代码举例及最新版下载
  • jQuery向导插件 Jquery Wizard Plugin
  • Jquery操作html复选框checkbox:全选,全不选和反选
  • jQuery圆角插件 jQuery Corners
  • struts+spring+hibernate+jquery实现分页功能的几个基本类介绍(异步加载)
  • jQuery相册插件 jQuery.popeye
  • jQuery UI组件 jQuery UI
  • jQuery分页插件 Pagination jQuery Plugin
  • jQuery日历插件 jQuery Week Calendar


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3