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 urldecode URL解码的问题
Jan 08 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
Nov 19 Javascript
js数组循环遍历数组内所有元素的方法
Jan 18 Javascript
使用JavaScript 编写简单计算器
Nov 24 Javascript
JavaScript实现网站访问次数统计代码
Aug 12 Javascript
js仿百度登录页实现拖动窗口效果
Mar 11 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
Aug 11 Javascript
微信小程序 参数传递实例代码
Mar 20 Javascript
JavaScript实现获取远程的html到当前页面中
Mar 26 Javascript
Node.js使用gm拼装sprite图片
Jul 04 Javascript
详解angularjs popup-table 弹出框表格指令
Sep 20 Javascript
JS定义函数的几种常用方法小结
May 23 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和MySQL保存和输出图片
2006/10/09 PHP
劣质的PHP代码简化
2010/02/08 PHP
php检测图片木马多进制编程实践
2013/04/11 PHP
php实现两表合并成新表并且有序排列的方法
2014/12/05 PHP
PHP实现简单搜歌的方法
2015/07/28 PHP
php异常处理捕获错误整理
2019/09/23 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
javascript 实现父窗口引用弹出窗口的值的脚本
2007/08/07 Javascript
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
js动态往表格的td中添加图片并注册事件
2014/06/12 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
Window.Open打开窗体和if嵌套代码
2016/04/15 Javascript
JS中递归函数
2016/06/17 Javascript
js中int和string数据类型互相转化实例
2019/01/16 Javascript
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
vue项目中使用scss的方法步骤
2019/05/16 Javascript
浅谈layer弹出层按钮颜色修改方法
2019/09/11 Javascript
javascript实现移动端上传图片功能
2020/08/18 Javascript
[01:55]TI9显影之尘系列 - Evil Geniuses
2019/08/22 DOTA
利用python修改json文件的value方法
2018/12/31 Python
python的常见矩阵运算(小结)
2019/08/07 Python
pytorch: Parameter 的数据结构实例
2019/12/31 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
2020/04/22 Python
Keras预训练的ImageNet模型实现分类操作
2020/07/07 Python
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
基于HTML5的WebGL实现json和echarts图表展现在同一个界面
2017/10/26 HTML / CSS
初中科学教学反思
2014/01/21 职场文书
中学校庆方案
2014/03/17 职场文书
2014年护士长工作总结
2014/11/11 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
部门经理助理岗位职责
2015/04/13 职场文书
学习杨善洲同志先进事迹心得体会
2016/01/23 职场文书
干货:如何写好工作计划!
2019/05/17 职场文书
python多线程方法详解
2022/01/18 Python
尝试使用Python爬取城市租房信息
2022/04/12 Python
python数字图像处理之对比度与亮度调整示例
2022/06/28 Python