一个js控制的导航菜单实例代码


Posted in Javascript onDecember 03, 2013

这种菜单效果是通过脚本和样式控制的,对于新手来说是非常好的学习内容:

这种昨晚一边看舞动奇迹,一边整理这个菜单的小代码,一起来看看吧,会了可以温故知新,不会的可以借鉴一下思想,其实就是想完善一下这种前端的思想,让它不要再陌生:

这是一个asp.net的master页面里面的菜单部分

Html部分:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <link type="text/css" rel="Stylesheet" href="Styles/master.css" />
    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
    <script src="Scripts/nav.js" type="text/javascript"></script>
</head>
<body>
<div class="nav" id="nav">
     <input type="hidden" value="<%=Request.QueryString["menutemp"] %>" id="masterid" />
     <a href="Default.aspx?menutemp=0" class="check">首页</a>
     <a href="surveylist.aspx?menutemp=1">医院概况</a>
     <a href="Culturelist.aspx?menutemp=2">医院文化</a>
     <a href="Tumor dynamic list.aspx?menutemp=3">医院动态</a>
     <a href="Services list .aspx?menutemp=4">医院服务</a>
     <a href="Medical guidelines.aspx?menutemp=5">就诊指南</a>
     <a href="Introduce department.aspx?menutemp=6">科室介绍</a>
</div>
</body>        
</html>

看看css部分把,这是来区分选中项和其他项的:

#master .head .nav a.check{ background:url(../images/navbg.png) 1px 1px no-repeat; color:#fff;}

下面就是给html赋予生命的js部分,是他让网页动起来:

$(document).ready(function () {//表示要在网页加载之后运行
    var current = $("#masterid").val();//通过jquery方式获取id=masterid的页面元素的值,其实就是为了获取选中的那个菜单
    var alist = new Array();//定义数组
    if (current == "") {//要是没有获取到选中的菜单,我们就忽略这个
        current = -1;
    }
    $("#nav>a").each(function (i, items) {//这个部分就是在你点击了菜单一项后,还么有刷新页面时候的样式变化,哈哈,each是一个遍历函数,会遍历#nav>a的集合。
        alist[i] = $(items);//i是从0开始到遍历集合结束为止,自增1的
        $(alist[i]).click(function () {//对alist[i]进行注册点击事件,点击就会执行对应的方法,
            if (i != current) {//要是选择了不同的菜单项,就会给选择的菜单加上应有的样式,而之前的就会去除样式
                $(this).addClass("check");
                $(alist[current]).removeClass("check");
                current = i;//返回新选择的菜单项id
            }
        });
    });
    $("#nav>a").each(function (i, items) {//这是在页面跳转到新页面后对页面样式的处理,让菜单的样式正确调用。
        alist[i] = $(items);
        if (i != current) {
            $(alist[i]).removeClass("check");
        }
    });
    $(alist[current]).addClass("check");
});

好了,你可以赶快试一下吧。
Javascript 相关文章推荐
jquery.validate使用攻略 第二部
Jul 01 Javascript
javascript中最常用的继承模式 组合继承
Aug 12 Javascript
JavaScript执行顺序详细介绍
Dec 04 Javascript
图片翻转效果具体实现代码
Jan 09 Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
Jul 27 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
Jan 24 Javascript
javascript设计模式之module(模块)模式
Aug 19 Javascript
vue不通过路由直接获取url中参数的方法示例
Aug 24 Javascript
js匿名函数使用&amp;传参(实例)
Sep 08 Javascript
vue中简单弹框dialog的实现方法
Feb 26 Javascript
详解微信小程序调起键盘性能优化
Jul 24 Javascript
Element Cascader 级联选择器的使用示例
Jul 27 Javascript
JS与C#编码解码
Dec 03 #Javascript
探讨jQuery的ajax使用场景(c#)
Dec 03 #Javascript
浅析JavaScript原型继承的陷阱
Dec 03 #Javascript
解析JavaScript中instanceof对于不同的构造器或许都返回true
Dec 03 #Javascript
探讨JavaScript中声明全局变量三种方式的异同
Dec 03 #Javascript
解析JavaScript中delete操作符不能删除的对象
Dec 03 #Javascript
解析Javascript小括号“()”的多义性
Dec 03 #Javascript
You might like
天使彦史上最神还原,性别曝光的那一刻,百万网友恋爱了
2020/03/02 国漫
PHP 双链表(SplDoublyLinkedList)简介和使用实例
2015/05/12 PHP
PHP 9 大缓存技术总结
2015/09/17 PHP
wordpress网站转移到本地运行测试的方法
2017/03/15 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
2014/06/16 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
2015/04/07 Javascript
jQuery网页选项卡插件rTabs用法实例分析
2015/08/26 Javascript
JS实现可点击展开与关闭的左侧广告代码
2015/09/02 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
node.js实现微信JS-API封装接口的示例代码
2017/09/06 Javascript
详解React Native开源时间日期选择器组件(react-native-datetime)
2017/09/13 Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
2018/01/16 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python ValueError: invalid literal for int() with base 10 实用解决方法
2015/06/21 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
python搭建服务器实现两个Android客户端间收发消息
2018/04/12 Python
python smtplib模块实现发送邮件带附件sendmail
2018/05/22 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
Python 单元测试(unittest)的使用小结
2018/11/14 Python
手把手教你使用Python创建微信机器人
2019/04/29 Python
Python 分享10个PyCharm技巧
2019/07/13 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
详解rem 适配布局
2018/10/31 HTML / CSS
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
常务副总经理岗位职责
2014/04/12 职场文书
2014最新房贷收入证明范本
2014/09/12 职场文书
上课睡觉万能检讨书
2015/02/17 职场文书
vue动态绑定style样式
2022/04/20 Vue.js