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 相关文章推荐
Javascript调试工具(下载)
Jan 09 Javascript
Javascript写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)
Feb 09 Javascript
javascript 单选框,多选框美化代码
Aug 01 Javascript
JavaScript window.document的属性、方法和事件小结
Oct 24 Javascript
js如何获取兄弟、父类等节点
Jan 06 Javascript
Jquery easyui 实现动态树
Nov 17 Javascript
javascript html5移动端轻松实现文件上传
Mar 27 Javascript
BooStrap对导航条的改造实践小结
Sep 21 Javascript
微信小程序学习(4)-系统配置app.json详解
Jan 12 Javascript
基于jQuery的表单填充实例
Aug 22 jQuery
jQuery实现炫丽的3d旋转星空效果
Jul 04 jQuery
vue中使用v-for时为什么不能用index作为key
Apr 04 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
利用static实现表格的颜色隔行显示
2006/10/09 PHP
php 面向对象的一个例子
2011/04/12 PHP
检查php文件中是否含有bom的函数
2012/05/31 PHP
php 指定范围内多个随机数代码实例
2016/07/18 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
2007/03/10 Javascript
Extjs NumberField后面加单位实现思路
2013/07/30 Javascript
JavaScript中reduce()方法的使用详解
2015/06/09 Javascript
easyui Droppable组件实现放置特效
2015/08/19 Javascript
jQuery实现form表单元素序列化为json对象的方法
2015/12/09 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
webpack4的迁移的使用方法
2018/05/25 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
Vue.js中的extend绑定节点并显示的方法
2019/06/20 Javascript
js实现坦克大战游戏
2020/02/24 Javascript
浅谈JavaScript 声明提升
2020/09/14 Javascript
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
Python用于学习重要算法的模块pygorithm实例浅析
2018/08/16 Python
python内置函数sorted()用法深入分析
2019/10/08 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
2019/12/19 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
matplotlib绘制多子图共享鼠标光标的方法示例
2021/01/08 Python
荷兰手表网站:Watch2Day
2018/07/02 全球购物
.net面试题
2015/12/22 面试题
公共事业管理本科生求职信
2013/10/07 职场文书
函授本科毕业生自我鉴定
2013/10/16 职场文书
终端业务员岗位职责
2013/11/27 职场文书
手机银行营销方案
2014/03/14 职场文书
年度优秀员工获奖感言
2014/08/15 职场文书
2019生态环境保护倡议书!
2019/07/03 职场文书
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
2021/05/06 MySQL