jQuery实现简洁的导航菜单效果


Posted in Javascript onNovember 23, 2015

本文实例讲述了JavaScript实现的伸展收缩型菜单代码。分享给大家供大家参考。具体如下:
运行效果截图如下:

jQuery实现简洁的导航菜单效果

鼠标悬浮时菜单项向上移动成蓝底白字,点击之后底部会有蓝条表示当前选中项。

页面代码,菜单的每一项都是一个 div ,其中包括一个 ul 用来放置显示文字等,另一个 div 则是底部的蓝条,需要给第一项和最后一项设置不同的 class ,样式需要用到:

<div id="nav">
<div class="navItem indexNavItem">


<ul class="navUl">



<li>首页</li>



<li class="hoverLi">首页</li>


</ul>


<div class="highlighter selectedNav"></div>

</div>

<div class="navItem">


<ul class="navUl">



<li>A</li>



<li class="hoverLi">A</li>
  </ul>


<div class="highlighter"></div>

</div>

<div class="navItem lastNavItem">


<ul class="navUl">



<li>A</li>



<li class="hoverLi">A</li>


</ul>


<div class="highlighter"></div>

</div>

<div id="logoutNavItem" class="navItem logoutNavItem lastNavItem">


<ul class="navUl">



<li>退出</li>



<li class="hoverLi">退出</li>


</ul>


<div class="highlighter"></div> 

</div>
</div>

样式,主要就是每个菜单项的左右边框的设置以及 ul 和 li 的位置设置:

*
{
 padding: 0;
 margin: 0;
}
body
{
 background-color: #fffff3;
 font: 12px/1.6em Helvetica, Arial, sans-serif;
}
ul,li{
 list-style: none;
}
#nav
{
 text-align: center;
 height: 50px;
 font-size: 10px;
 line-height: 30px;
 background-color: #F0E6DB;
 margin-bottom: 10px;
}
.navItem
{
 cursor: pointer;
 position: relative;
 float: left;
 width: 100px;
 height: 50px;
 font-size: 15px;
 border-right: 2px solid rgb(255,255,255);
 border-left: 2px solid rgb(255,255,255);
 overflow: hidden;
 font-weight:bold;
}
.indexNavItem
{
 border-left: 4px solid rgb(255,255,255);
 margin-left: 10px;
}
.lastNavItem
{
 border-right: 4px solid rgb(255,255,255);
}
.logoutNavItem
{
 float: right;
 width: 120px;
 margin-right: 10px;
 border-left: 4px solid rgb(255,255,255);
}
.navUl
{
 position: relative;
 height: 100px;
 width: 100%;
 border-bottom: 5px solid rgb(2,159,212);
}
.navUl li
{
 height: 50px;
 line-height: 50px;
}
.highlighter
{
 position: absolute;
 bottom: 0;
 height: 5px;
 width: 100%;
}
.selectedNav
{
 background-color: #029FD4;
}
.hoverLi
{
 background-color: #029FD4;
 color: #ffffff;
}

接下来就是给菜单编写悬浮和单击事件的 js 代码了,悬浮时将 ul 上移 li 的高度,鼠标移开后再恢复,点击之后就是给蓝条的 div 添加样式即可:

$(function() {
 $(".navItem").hover(function() {
  $(this).children("ul").animate({
   top: "-50px"
  }, 100);
 }, function() {
  $(this).children("ul").animate({
   top: "0px"
  }, 100);
 });
 
 $(".navItem").click(function(event) {
  $(this).siblings().children('.highlighter').removeClass('selectedNav');
  $(this).children('.highlighter').addClass('selectedNav');
 });
})

以上就是jQuery实现简洁的导航菜单效果的关键代码,希望对大家的学习有所帮助。

Javascript 相关文章推荐
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
Oct 25 Javascript
jQuery 入门级学习笔记及源码
Jan 22 Javascript
jquery随意添加移除html的实现代码
Jun 21 Javascript
利用jquery的获取JS文件中的字符串内容
Feb 14 Javascript
javascript中对变量类型的判断方法
Aug 09 Javascript
Bootstrap的class样式小结
Dec 01 Javascript
浅谈javascript中的 “ &amp;&amp; ” 和 “ || ”
Feb 02 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
Jun 16 jQuery
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
Sep 28 Javascript
当vue路由变化时,改变导航栏的样式方法
Aug 22 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
Aug 14 Javascript
JS Canvas接口和动画效果大全
Apr 29 Javascript
Bootstrap每天必学之表格
Nov 23 #Javascript
js 右侧浮动层效果实现代码(跟随滚动)
Nov 22 #Javascript
JQuery实现简单的图片滑动切换特效
Nov 22 #Javascript
js实现简单计算器
Nov 22 #Javascript
javascript实现别踩白块儿小游戏程序
Nov 22 #Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
Nov 21 #Javascript
jquery实现select选择框内容左右移动代码分享
Nov 21 #Javascript
You might like
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
MySQL 日期时间函数常用总结
2012/06/12 PHP
简单的cookie计数器实现源码
2013/06/07 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
四种php中webservice实现的简单架构方法及实例
2015/02/03 PHP
PHP curl伪造IP地址和header信息代码实例
2015/04/27 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
2019/03/07 PHP
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
2012/06/22 Javascript
JavaScript中的原始值和复杂值
2016/01/07 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
2018/08/24 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
2018/08/27 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
Node.js系列之安装配置与基本使用(1)
2019/08/30 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
浅谈numpy库的常用基本操作方法
2018/01/09 Python
python正则表达式面试题解答
2020/04/28 Python
python实现机器学习之多元线性回归
2018/09/06 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
2020/02/07 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
古驰英国官网:GUCCI英国
2020/03/07 全球购物
公证委托书模板
2014/04/03 职场文书
保证书范文大全
2014/04/28 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
市场营销计划书范文
2015/01/16 职场文书
2015年女职工工作总结
2015/05/15 职场文书
被告代理词范文
2015/05/25 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
教师远程研修感悟
2015/11/18 职场文书
《观察物体》教学反思
2016/02/17 职场文书
利用 SQL Server 过滤索引提高查询语句的性能分析
2021/07/15 SQL Server
一文搞清楚MySQL count(*)、count(1)、count(col)区别
2022/03/03 MySQL
js作用域及作用域链工作引擎
2022/07/07 Javascript