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的message插件实现右下角弹出消息框
Jan 11 Javascript
基于jquery点击自以外任意处,关闭自身的代码
Feb 10 Javascript
jquery实现奇偶行赋值不同css值
Feb 17 Javascript
解析javascript系统错误:-1072896658的解决办法
Jul 08 Javascript
jquery 追加tr和删除tr示例代码
Sep 12 Javascript
JavaScript字符串对象
Jan 14 Javascript
微信小程序 自定义对话框实例详解
Jan 20 Javascript
JS 实现 ajax 异步浏览器兼容问题
Jan 21 Javascript
关于vue中 $emit的用法详解
Apr 12 Javascript
如何更好的编写js async函数
May 13 Javascript
webpack打包多页面的方法
Nov 30 Javascript
微信小程序日历组件使用方法详解
Dec 29 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实现无限级分类查询(递归、非递归)
2016/03/10 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
JS 控制非法字符的输入代码
2009/12/04 Javascript
多种方式实现JS调用后台方法进行数据交互
2013/08/20 Javascript
高效率JavaScript编写技巧整理
2013/08/23 Javascript
获取3个数组不重复的值的具体实现
2013/12/30 Javascript
禁用JavaScript控制台调试的方法
2014/03/07 Javascript
jquery实现上下左右滑动的方法
2015/02/09 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
学做Bootstrap的第一个页面
2016/05/15 HTML / CSS
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
jquery中each循环的简单回滚操作
2017/05/05 jQuery
vue resource post请求时遇到的坑
2017/10/19 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
2017/10/28 jQuery
vue中eventbus被多次触发以及踩过的坑
2017/12/02 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
layer ui插件显示tips时,修改字体颜色的实现方法
2019/09/11 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
2019/09/27 Javascript
在vue中根据光标的显示与消失实现下拉列表
2019/09/29 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
vue axios封装httpjs,接口公用配置拦截操作
2020/08/11 Javascript
Python获取文件ssdeep值的方法
2014/10/05 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
Python拼接字符串的7种方法总结
2018/11/01 Python
python爬虫 线程池创建并获取文件代码实例
2019/09/28 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
简单说说tomcat的配置
2013/05/28 面试题
以思科路由器为例你写下单臂路由的配置命令
2013/08/03 面试题
装饰工程师岗位职责
2014/06/08 职场文书
服务承诺书
2015/01/19 职场文书
个人简历求职信范文
2015/03/20 职场文书