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 相关文章推荐
jquery动态添加option示例
Dec 30 Javascript
JS实现当前页居中分页效果的方法
Jun 18 Javascript
JS使用post提交的两种方式
Dec 03 Javascript
jquery实现右侧栏菜单选择操作
Mar 04 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
May 20 Javascript
AngularJS基础 ng-click 指令示例代码
Aug 01 Javascript
前端面试知识点锦集(JavaScript篇)
Dec 28 Javascript
浅谈angularjs依赖服务注入写法的注意点
Apr 24 Javascript
微信小程序 获取二维码实例详解
Jun 23 Javascript
JavaScript实现旋转轮播图
Aug 18 Javascript
Node.js实现注册邮箱激活功能的方法示例
Mar 23 Javascript
JavaScript实现图片放大镜效果
Jun 27 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初始化对象和析构函数的简单实例
2014/03/11 PHP
PHP调用其他文件中的类
2018/04/02 PHP
JQuery 确定css方框模型(盒模型Box Model)
2010/01/22 Javascript
jQuery 绑定事件到动态创建的元素上的方法实例
2013/08/18 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
2014/05/23 Javascript
JavaScript字符串常用的方法
2016/03/10 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
js时间控件只显示年月
2017/01/08 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
JS控制鼠标拒绝点击某一按钮的实例
2017/12/29 Javascript
vue轮播图插件vue-concise-slider的使用
2018/03/13 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
2018/07/07 Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
2019/12/29 Javascript
深入理解Python中装饰器的用法
2016/06/28 Python
Linux 下 Python 实现按任意键退出的实现方法
2016/09/25 Python
python中使用PIL制作并验证图片验证码
2018/03/15 Python
Python3之读取连接过的网络并定位的方法
2018/04/22 Python
Python调用服务接口的实例
2019/01/03 Python
通过pycharm使用git的步骤(图文详解)
2019/06/13 Python
Django如何简单快速实现PUT、DELETE方法
2019/07/24 Python
Python+AutoIt实现界面工具开发过程详解
2019/08/07 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
python实现数据结构中双向循环链表操作的示例
2020/10/09 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
ET Mall东森购物网:东森严选
2017/03/06 全球购物
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
电脑租赁公司创业计划书
2014/01/08 职场文书
大学社团计划书
2014/05/01 职场文书
入党积极分子十八届四中全会思想汇报
2014/10/23 职场文书
南京大屠杀观后感
2015/06/02 职场文书
Log4j.properties配置及其使用
2021/08/02 Java/Android
Python中re模块的元字符使用小结
2022/04/07 Python