jquery实现无限分级横向导航菜单的方法


Posted in Javascript onMarch 12, 2015

本文实例讲述了jquery实现无限分级横向导航菜单的方法。分享给大家供大家参考。具体实现方法如下:

1. jquery插件版本代码如下:

(function($){

    $.fn.extend({

        droplinemenu: function(configs) {

            var configs = $.extend({                

                over: 200,

                out: 100, 

                rightdown:'css/down.gif'

            },configs||{});

            this.find(">ul").addClass("dropmenu");

            this.find("ul li:has(ul)").addClass('hasmenu').find(">a").append("<img class='downarrowclass' src='"+configs.rightdown+"'>");

            var currentobj;

            return $('li.hasmenu').hover(function(){                 

                if ($.browser.msie) {//清除ie下生成的overflow:hidden

                    $(this).parent("ul").css({'overflow': 'visible'}); 

                } 

                $(this).find(">ul").stop(true, true).css('top',$(this).height()).slideDown(configs.over);

            },function(){   

                $(this).find(">ul").stop(true, true).slideUp(configs.out);

            });

        }

    });

})(jQuery);

2. 样式代码
* {margin:0;padding:0}

.droplinebar{

     position: absolute;

    z-index: 20;

    width: 700px;

}

.droplinebar ul.dropmenu {

position: relative;

}

.droplinebar ul{

width: 100%; 

float: left; 

font: bold 13px Arial;

background: #242c54 url(bluedefault.gif) center center repeat-x; /*default background of menu bar*/

}

.droplinebar ul li{

    float:left; 

} 

.droplinebar ul ul {

    width: 700px;

    display:none;

    z-index: 100;

    position:absolute;

    left:0; 

    background: #303c76; 

    zoom: 1;

}

.droplinebar ul li a{

    float: left;

    color: white;

    padding: 9px 11px;

    text-decoration: none;

    display:block; 

}

.droplinebar ul li.hasmenu a img {border:none;margin-left:5px;} 

.droplinebar ul li a:hover, .droplinebar ul li .current{ /*background of main menu bar links onMouseover*/

color: white;

background: transparent url(blueactive.gif) center center repeat-x;

}  

/* Sub level menu links style */

.droplinebar ul li ul li a{

font: normal 13px Verdana;

padding: 6px;

padding-right: 8px;

margin: 0;

border-bottom: 1px solid navy;

}

.droplinebar ul li ul li a:hover{ /*sub menu links' background color onMouseover */

background: #242c54;

}

3. HTML代码如下
<link rel="stylesheet" type="text/css" href="css/droplinebar.css" /> 

<script type="text/javascript" src="js/jquery.min.js"></script> 

<script src="js/droplinemenu.js" type="text/javascript"></script> 

<script type="text/javascript"> 

$(document).ready(function(){

    $("#mydroplinemenu").droplinemenu();

});

</script>

<div id="mydroplinemenu" class="droplinebar">

<ul>

<li><a href="http://www.dynamicdrive.com/">Home</a></li>

<li><a href="http://www.dynamicdrive.com/style/">CSS Examples</a>

  <ul>

  <li><a href="#">Activities 1</a></li>

  <li><a href="#">Activities 2</a></li>

  <li><a href="#">Activities 3</a>

      <ul>

      <li><a href="#">Water Sports 1</a></li>

      <li><a href="#">Water Sports 1</a></li>

      <li><a href="#">Water Sports 1</a></li>

      <li><a href="#">Water Sports 1</a></li>

      </ul>

    </li>

  <li><a href="#">Activities 4</a></li>

  </ul>

</li>

<li><a href="http://tools.dynamicdrive.com">Tools</a></li>

<li><a href="http://www.javascriptkit.com/">JavaScript</a>

  <ul>

  <li><a href="#">Traveling 1</a></li>

  <li><a href="#">Traveling 2</a></li>

  <li><a href="#">Traveling 3</a></li>

  <li><a href="#">Traveling 4</a>

      <ul>

      <li><a href="#">Africa 1</a></li>

      <li><a href="#">Africa 2</a></li>

      <li><a href="#">Africa 3</a></li>

      <li><a href="#">Africa 4</a>

          <ul>

          <li><a href="#">Kenya 1</a></li>

          <li><a href="#">Kenya 2</a></li>

          <li><a href="#">Kenya 3</a></li>

          <li><a href="#">Kenya 4</a></li>

          <li><a href="#">Kenya 5</a></li>

          </ul>

        </li>

      </ul>

    </li>

  <li><a href="#">Traveling 5</a></li>

  </ul>

</li>

<li><a href="http://www.cssdrive.com">Gallery</a></li>

</ul>

</div>

4. 无插件版本代码:
$(document).ready(function(){

    var configs_over = 200,configs_out = 100;

    $("#mydroplinemenu").find(">ul").addClass("dropmenu").find("li:has(ul)").addClass('hasmenu').find(">a").append("<img class='downarrowclass' src='css/down.gif'>");

    $('.dropmenu li.hasmenu').hover(function(){              

        if ($.browser.msie) {//清除ie下生成的overflow:hidden

            $(this).parent("ul").css({'overflow': 'visible'}); 

        } 

        $(this).find(">ul").stop(true, true).css('top',$(this).height()).slideDown(configs_over);

    },function(){   

        $(this).find(">ul").stop(true, true).slideUp(configs_out);

    });

});

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
javascript Demo模态窗口
Dec 06 Javascript
Lazy Load 延迟加载图片的 jQuery 插件
Feb 06 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
Nov 12 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
Apr 02 Javascript
浅谈Angular路由复用策略
Oct 04 Javascript
Node.js console控制台简单用法分析
Jan 04 Javascript
详解JavaScript函数callee、call、apply的区别
Mar 08 Javascript
JavaScript一元正号运算符示例代码
Jun 30 Javascript
详解vue中多个有顺序要求的异步操作处理
Oct 29 Javascript
Vue+Element-UI实现上传图片并压缩
Nov 26 Javascript
如何构建 vue-ssr 项目的方法步骤
Aug 04 Javascript
react中hook介绍以及使用教程
Dec 11 Javascript
JavaScript中定义函数的三种方法
Mar 12 #Javascript
javascript实时显示北京时间的方法
Mar 12 #Javascript
jquery实现焦点图片随机切换效果的方法
Mar 12 #Javascript
JavaScript数据结构与算法之栈详解
Mar 12 #Javascript
jQuery实现简单的日期输入格式化控件
Mar 12 #Javascript
Javascript数据结构与算法之列表详解
Mar 12 #Javascript
javascript实现 百度翻译 可折叠的分享按钮列表
Mar 12 #Javascript
You might like
php统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
2013/06/21 PHP
php绘制一条直线的方法
2015/01/24 PHP
PHP中的命名空间详细介绍
2015/07/02 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
laravel 多图上传及图片的存储例子
2019/10/14 PHP
laravel框架学习笔记之组件化开发实现方法
2020/02/01 PHP
javascript 面向对象编程  function是方法(函数)
2009/09/17 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
js特殊字符过滤的示例代码
2014/03/05 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
完美解决vue 中多个echarts图表自适应的问题
2020/07/19 Javascript
vant中的toast层级改变操作
2020/11/04 Javascript
使用Python的Supervisor进行进程监控以及自动启动
2014/05/29 Python
详细介绍Python中的偏函数
2015/04/27 Python
详解在Python程序中自定义异常的方法
2015/10/16 Python
VTK与Python实现机械臂三维模型可视化详解
2017/12/13 Python
python读取中文txt文本的方法
2018/04/12 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
2019/01/05 Python
python实现键盘输入的实操方法
2019/07/16 Python
Python入门Anaconda和Pycharm的安装和配置详解
2019/07/16 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
Python实现对adb命令封装
2020/03/06 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
django模型类中,null=True,blank=True用法说明
2020/07/09 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
python如何爬取网页中的文字
2020/07/28 Python
HTML5的postMessage的使用手册
2018/12/19 HTML / CSS
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
九年级物理教学反思
2014/01/29 职场文书
带病坚持工作事迹
2014/05/03 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python