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 相关文章推荐
document.all还是document.getElementsByName?
Jul 21 Javascript
jQuery Form 页面表单提交的小例子
Nov 15 Javascript
JS JSON对象转为字符串的简单实现方法
Nov 18 Javascript
AngularJS基础学习笔记之简单介绍
May 10 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
Jul 12 Javascript
利用jQuery对无序列表排序的简单方法
Oct 16 Javascript
微信小程序 form组件详解
Oct 25 Javascript
JSP防止网页刷新重复提交数据的几种方法
Nov 19 Javascript
微信小程序实现tab左右切换效果
Nov 15 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
Nov 09 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
Mar 11 Javascript
vue-cropper插件实现图片截取上传组件封装
May 27 Vue.js
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 获取当前访问的url文件名的方法小结
2010/02/08 PHP
PHP中的Streams详细介绍
2014/11/12 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
通过Email发送PHP错误的方法
2015/07/20 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
2016/12/23 PHP
PHP中PCRE正则解析代码详解
2019/04/26 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
2020/04/23 PHP
autoIMG 基于jquery的图片自适应插件代码
2011/03/12 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
JavaScript中连接操作Oracle数据库实例
2015/04/02 Javascript
Node.js中的process.nextTick使用实例
2015/06/25 Javascript
js实现的tab标签切换效果代码分享
2015/08/25 Javascript
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
五分钟搞懂Vuex实用知识(小结)
2019/08/12 Javascript
Jquery异步上传文件代码实例
2019/11/13 jQuery
如何手写一个简易的 Vuex
2020/10/10 Javascript
Python实现把json格式转换成文本或sql文件
2015/07/10 Python
基于Python实现用户管理系统
2019/02/26 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
2019/12/11 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
2020/07/02 Python
Django前后端分离csrf token获取方式
2020/12/25 Python
广州迈达威.net面试题目
2012/03/10 面试题
宿舍使用违章电器检讨书
2014/01/12 职场文书
坚定理想信念心得体会
2014/03/11 职场文书
网吧七夕活动策划方案
2014/08/31 职场文书
有关九一八事变的演讲稿
2014/09/14 职场文书
党员查摆剖析材料
2014/10/10 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
社区元宵节活动总结
2015/02/06 职场文书
城南旧事观后感
2015/06/11 职场文书
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python