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技巧来提高你的代码
Jan 08 Javascript
js禁止document element对象选中文本实现代码
Mar 21 Javascript
jQuery的$.proxy()应用示例介绍
Apr 03 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
May 11 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
Dec 24 Javascript
Javascript类型系统之undefined和null浅析
Jul 13 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
Dec 25 Javascript
JS中正则表达式要注意lastIndex属性
Aug 08 Javascript
Vue2.0 事件的广播与接收(观察者模式)
Mar 14 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
Nov 02 Javascript
VUE.CLI4.0配置多页面入口的实现
Nov 25 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
Aug 04 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
2006/12/14 PHP
PHP 第三节 变量介绍
2012/04/28 PHP
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
Code:loadScript( )加载js的功能函数
2007/02/02 Javascript
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
当前流行的JavaScript代码风格指南
2014/09/10 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
2020/03/30 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
jQuery 遍历map()方法详解
2016/11/04 Javascript
AngularJS之ionic 框架下实现 Localstorage本地存储
2017/04/22 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
小程序实现展开/收起的效果示例
2018/09/22 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
react-intl实现React国际化多语言的方法
2020/09/27 Javascript
python入门教程之识别验证码
2017/03/04 Python
pandas删除指定行详解
2019/04/04 Python
Python利用WMI实现ping命令的例子
2019/08/14 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
2020/03/12 Python
Python实现猜年龄游戏代码实例
2020/03/25 Python
python Django 反向访问器的外键冲突解决
2020/05/20 Python
python函数map()和partial()的知识点总结
2020/05/26 Python
Python confluent kafka客户端配置kerberos认证流程详解
2020/10/12 Python
python爬虫判断招聘信息是否存在的实例代码
2020/11/20 Python
python中字符串的编码与解码详析
2020/12/03 Python
How TDD works
2012/09/30 面试题
违反课堂纪律检讨书
2014/01/19 职场文书
六一儿童节活动策划方案
2014/01/27 职场文书
保险公司年会主持词
2014/03/22 职场文书
财务经理岗位职责
2015/01/31 职场文书
幼儿园大班开学寄语(2015秋季)
2015/05/27 职场文书
2019行政前台转正申请书范文3篇
2019/08/15 职场文书
python神经网络ResNet50模型
2022/05/06 Python