一个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 相关文章推荐
判断用户是否在线的代码
Mar 05 Javascript
基于jquery DOM写的类似微博发布的效果
Oct 20 Javascript
jQuery插件StickUp实现网页导航置顶
Apr 12 Javascript
javascript性能优化之事件委托实例详解
Dec 12 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
Jun 25 Javascript
vue 指定组件缓存实例详解
Apr 01 Javascript
常用的 JS 排序算法 整理版
Apr 05 Javascript
javascript中的数据类型检测方法详解
Aug 07 Javascript
vue 解决遍历对象显示的顺序不对问题
Nov 07 Javascript
vue模块移动组件的实现示例
May 20 Javascript
vue-cli 关闭热更新操作
Sep 18 Javascript
React Hook用法示例详解(6个常见hook)
Apr 28 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
PHP4中实现动态代理
2006/10/09 PHP
PHP个人网站架设连环讲(三)
2006/10/09 PHP
Php注入点构造代码
2008/06/14 PHP
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
JS对HTML标签select的获取、添加、删除操作
2013/10/17 Javascript
js中string转int把String类型转化成int类型
2014/08/13 Javascript
深入理解jquery自定义动画animate()
2016/05/24 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
详解使用nodeJs安装Vue-cli
2017/05/17 NodeJs
node.js express中app.param的用法详解
2017/07/16 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
2018/07/26 Javascript
LayUi数据表格自定义赋值方式
2019/10/26 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
基于redis的小程序登录实现方法流程分析
2020/05/25 Javascript
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
vue+Element-ui实现分页效果
2020/11/15 Javascript
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python pickle类库介绍(对象序列化和反序列化)
2014/11/21 Python
Python的面向对象编程方式学习笔记
2016/07/12 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
2017/05/16 Python
Python中enumerate函数代码解析
2017/10/31 Python
Python决策树分类算法学习
2017/12/22 Python
Python Numpy计算各类距离的方法
2019/07/05 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
Python装饰器使用你可能不知道的几种姿势
2019/10/25 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
人事专员的岗位职责
2014/03/01 职场文书
公司人事任命通知
2015/04/20 职场文书
刑事法律意见书
2015/06/04 职场文书
2016年寒假学习心得体会
2015/10/09 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
党章学习心得体会2016
2016/01/14 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL
clear 万能清除浮动(clearfix:after)
2023/05/21 HTML / CSS