一个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下onpropertychange事件的绑定方法
Aug 01 Javascript
最短的IE判断代码
Mar 13 Javascript
仿中关村在线首页弹出式广告插件(jQuery版)
May 03 Javascript
将数字转换成大写的人民币表达式的js函数
Sep 21 Javascript
jQuery中[attribute!=value]选择器用法实例
Dec 31 Javascript
js+HTML5实现视频截图的方法
Jun 16 Javascript
jQuery实现可拖拽3D万花筒旋转特效
Jan 03 Javascript
canvas实现图像截取功能
Feb 06 Javascript
js实现ATM机存取款功能
Oct 27 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
Sep 25 Javascript
vue使用axios实现excel文件下载的功能
Jul 16 Javascript
JS实现页面侧边栏效果探究
Jan 08 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
一道关于php变量引用的面试题
2010/08/08 PHP
php设计模式 Facade(外观模式)
2011/06/26 PHP
php查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
Yii2如何批量添加数据
2016/05/17 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
thinkphp集成前端脚手架Vue-cli的教程图解
2018/08/30 PHP
解决laravel 出现ajax请求419(unknown status)的问题
2019/09/03 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
解决FireFox下[使用event很麻烦]的问题
2006/11/26 Javascript
js检测客户端不是firefox则提示下载
2007/04/07 Javascript
关于document.cookie的使用javascript
2008/04/11 Javascript
JavaScript 变量基础知识
2009/11/07 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
select多选 multiple的使用示例
2014/06/16 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
2015/09/14 Javascript
一次围绕setTimeout的前端面试经验分享
2017/06/15 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
微信小程序API—获取定位的详解
2019/04/30 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
d3.js实现图形缩放平移
2019/12/19 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
[03:02]辉夜杯主赛事第二日 每日之星
2015/12/27 DOTA
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
Python时间序列处理之ARIMA模型的使用讲解
2019/04/02 Python
实例详解Python模块decimal
2019/06/26 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
python中if嵌套命令实例讲解
2021/02/25 Python
丝芙兰中国官方商城:SEPHORA中国
2018/01/10 全球购物
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
迟到检讨书400字
2014/01/13 职场文书
筑梦中国心得体会
2016/01/18 职场文书
baselines示例程序train_cartpole.py的ImportError
2022/05/20 Python