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 相关文章推荐
奇妙的js
Sep 24 Javascript
thinkphp 表名 大小写 窍门
Feb 01 Javascript
详谈LABJS按需动态加载js文件
May 07 Javascript
AngularJS实现星星等级评分功能
Sep 24 Javascript
手机端实现Bootstrap简单图片轮播效果
Oct 13 Javascript
React中ES5与ES6写法的区别总结
Apr 21 Javascript
php 修改密码实现代码
May 24 Javascript
基于javaScript的this指向总结
Jul 22 Javascript
玩转vue的slot内容分发
Sep 22 Javascript
简单了解微信小程序的目录结构
Jul 01 Javascript
vue的三种图片引入方式代码实例
Nov 19 Javascript
JavaScript实现简单进度条效果
Mar 25 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将html转成wml的WAP标记语言实例
2015/07/08 PHP
使用PHP编写发红包程序
2015/07/22 PHP
限制文本字节数js代码
2007/03/06 Javascript
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
JS 密码强度验证(兼容IE,火狐,谷歌)
2010/03/15 Javascript
使用js解决由border属性引起的div宽度问题
2013/11/26 Javascript
鼠标移到图片上变大显示而不是放大镜效果
2014/06/15 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
2015/03/04 Javascript
PhotoSwipe异步动态加载图片方法
2016/08/25 Javascript
vue.js入门教程之基础语法小结
2016/09/01 Javascript
Angularjs 创建可复用组件实例代码
2016/10/09 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
React 条件渲染最佳实践小结(7种)
2020/09/27 Javascript
Vue过滤器,生命周期函数和vue-resource简单介绍
2021/01/12 Vue.js
Python函数嵌套实例
2014/09/23 Python
Python socket编程实例详解
2015/05/27 Python
python的变量与赋值详细分析
2017/11/08 Python
python3 pandas 读取MySQL数据和插入的实例
2018/04/20 Python
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
Python2 Selenium元素定位的实现(8种)
2019/02/25 Python
Python语法分析之字符串格式化
2019/06/13 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
将pytorch转成longtensor的简单方法
2020/02/18 Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
2020/06/10 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
python Scrapy爬虫框架的使用
2021/01/21 Python
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
2014/04/28 面试题
社区八一活动方案
2014/02/03 职场文书
《白鹅》教学反思
2014/04/13 职场文书
商业企业管理专业求职信
2014/07/10 职场文书
2014年组织委员工作总结
2014/12/01 职场文书
孔庙导游词
2015/02/04 职场文书
企业安全生产规章制度
2015/08/06 职场文书
Vue图片裁剪组件实例代码
2021/07/02 Vue.js
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android