一个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对象和DOM对象使用说明
Jun 25 Javascript
Prototype源码浅析 Enumerable部分(二)
Jan 18 Javascript
js读取被点击次数的简单实例(从数据库中读取)
Mar 07 Javascript
DOM节点删除函数removeChild()用法实例
Jan 12 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
Sep 06 Javascript
jQuery插件form-validation-engine正则表达式操作示例
Feb 09 Javascript
Vue中的数据监听和数据交互案例解析
Jul 12 Javascript
ztree实现左边动态生成树右边为内容详情功能
Nov 03 Javascript
vue中使用better-scroll实现滑动效果及注意事项
Nov 15 Javascript
JavaScript队列结构Queue实现过程解析
Mar 07 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
Apr 14 Javascript
vue引入静态js文件的方法
Jun 20 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
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
2012/12/10 PHP
关于PHP语言构造器介绍
2013/07/08 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
网站如何做到完全不需要jQuery也可以满足简单需求
2013/06/27 Javascript
jquery 绑定回车动作扑捉回车键触发的事件
2014/03/26 Javascript
js的回调函数详解
2015/01/05 Javascript
JavaScript通过select动态更换图片的方法
2015/03/23 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
详解AngularJS之$window窗口对象
2018/01/17 Javascript
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
详解如何更好的使用module vuex
2019/03/27 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
vue element自定义表单验证请求后端接口验证
2019/12/11 Javascript
iview实现动态表单和自定义验证时间段重叠
2021/01/10 Javascript
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
Python使用django搭建web开发环境
2017/06/09 Python
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
Random 在 Python 中的使用方法
2018/08/09 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
CSS3毛玻璃效果(blur)有白边问题的解决方法
2016/11/15 HTML / CSS
vivo智能手机官方商城:vivo
2016/09/22 全球购物
德国滑雪和户外用品网上商店:XSPO
2019/10/30 全球购物
.NET remoting的两种通道是什么
2016/05/31 面试题
Hashtable 添加内容的方式有哪几种,有什么区别?
2012/04/08 面试题
工程造价专业大专生求职信
2013/10/06 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
小学运动会通讯稿
2015/07/18 职场文书
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
2021/05/26 Servers
详解Oracle块修改跟踪功能
2021/11/07 Oracle