jQuery实现简单漂亮的Nav导航菜单效果


Posted in jQuery onMarch 29, 2017

本文实例讲述了jQuery实现简单漂亮的Nav导航菜单效果。分享给大家供大家参考,具体如下:

自己写的一个简单的导航菜单,先看效果:

jQuery实现简单漂亮的Nav导航菜单效果

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

页面代码,菜单的每一项都是一个 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程序设计有所帮助。

jQuery 相关文章推荐
jQuery操作之效果详解
May 19 jQuery
jQuery用户头像裁剪插件cropbox.js使用详解
Jun 07 jQuery
jquery+css实现侧边导航栏效果
Jun 12 jQuery
jQuery绑定事件方法及区别(bind,click,on,live,one)
Aug 14 jQuery
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
Oct 20 jQuery
基于jQuery解决ios10以上版本缩放问题
Nov 03 jQuery
jQuery NProgress.js加载进度插件的简单使用方法
Jan 31 jQuery
jQuery实现为动态添加的元素绑定事件实例分析
Sep 07 jQuery
JQuery 实现文件下载的常用方法分析
Oct 29 jQuery
jQuery实现鼠标移入显示蒙版效果
Jan 11 jQuery
jquery实现聊天机器人
Feb 08 jQuery
JQuery表单元素取值赋值方法总结
May 12 jQuery
jQuery实现的手风琴侧边菜单效果
Mar 29 #jQuery
jQuery实现字体颜色渐变效果的方法
Mar 29 #jQuery
jquery实现tab键进行选择后enter键触发click行为
Mar 29 #jQuery
jQuery插件之validation插件
Mar 29 #jQuery
jquery实现静态搜索功能(可输入搜索文字)
Mar 28 #jQuery
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
Mar 28 #jQuery
BootStrap中jQuery插件Carousel实现轮播广告效果
Mar 27 #jQuery
You might like
php设计模式小结
2013/02/15 PHP
解析php防止form重复提交的方法
2013/07/01 PHP
PHP无限分类(树形类)
2013/09/28 PHP
PHP 函数call_user_func和call_user_func_array用法详解
2014/03/02 PHP
理解JavaScript的caller,callee,call,apply
2009/04/28 Javascript
js AspxButton的客户端操作
2009/06/26 Javascript
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
JS 添加千分位与去掉千分位的示例
2013/07/11 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
JavaScript中this的使用详解
2013/11/08 Javascript
使用typeof判断function是否存在于上下文
2014/08/14 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
基于Vue2.0+ElementUI实现表格翻页功能
2017/10/23 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
2017/12/05 jQuery
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
2017/12/28 Javascript
vue中实现methods一个方法调用另外一个方法
2018/02/08 Javascript
详解vue中$nextTick和$forceUpdate的用法
2019/12/11 Javascript
微信小程序地图绘制线段并且测量(实例代码)
2020/01/02 Javascript
JavaScript中交换值的10种方法总结
2020/08/18 Javascript
[02:56]DOTA2英雄基础教程 巨魔战将
2013/12/10 DOTA
[47:45]Liquid vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
30秒轻松实现TensorFlow物体检测
2018/03/14 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
Python求均值,方差,标准差的实例
2019/06/29 Python
python线性插值解析
2020/07/05 Python
python opencv实现图像配准与比较
2021/02/09 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
Nike墨西哥官网:Nike MX
2020/08/30 全球购物
什么是servlet
2012/05/08 面试题
学习党课思想汇报
2013/12/29 职场文书
病危通知书样本
2015/04/17 职场文书
vue 把二维或多维数组转一维数组
2022/04/24 Vue.js
Go中使用gjson来操作JSON数据的实现
2022/08/14 Golang