jQuery弹性滑动导航菜单实现思路及代码


Posted in Javascript onMay 02, 2013

jQuery弹性滑动导航菜单实现思路及代码

<!-- 本文参照了该作者的思路:http://runjs.cn/code/ouvvjqka,jquery代码系另外编写 --> 
<!-- 本文出自:http://blog.csdn.net/liuyanzhi08 --> 
<!-- 实现思路: 
CSS:用一个绝对定位的div作为动画滑块,改变它的left属性来呈现动画效果 
javascript:hover()触发移动鼠标到导航nav的动作,和移出导航nav的动作(即返回到current导航) 
--> 
<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="UTF-8" /> 
<meta name="author" content="Nancle" /> 
<title>jQuery弹性滑动导航菜单</title> 
<style type="text/css"> 
body{ font-family:"Microsoft YaHei";} 
#nav_wrapper{ position:relative; width:835px; margin:80px auto; border-bottom:2px #ddd solid;} 
#nav_wrapper #nav_menu{ height:50px;} 
#nav_wrapper #nav_menu a{ display:block; float:left; height:50px; padding:0 40px; line-height:50px; color:#666; font-size:16px; text-decoration:none;} 
#nav_wrapper #nav_animate_block{ position:absolute; bottom:-2px; height:2px; overflow:hidden; background:#80b600;} 
</style> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript"> 
$(function(){ 
var $current_nav = $("#current_nav"); //current元素(当前所在导航项) 
var current_nav_width = $current_nav.innerWidth(); 
var current_nav_left = $current_nav.position().left; 
var $nav_animate_block = $("#nav_animate_block"); //动画滑块 
$nav_animate_block.css({ width:current_nav_width, left:current_nav_left }); //初始状态下,动画滑块位置在current元素 
// 鼠标进入a元素时触发动画事件 
$("#nav_menu a").hover(function(){ 
var index = $(this).index(); 
var $a_cur = $("#nav_menu").find("a").eq(index);//鼠标移动到的a元素 
//利用触发的a元素索引获取其left位置和它的宽度 
var width = $a_cur.innerWidth(); 
var left = $a_cur.position().left; 
//设置动画滑块位置 
$nav_animate_block.stop().animate({ 
width: width, 
left: left 
}, 300) 
}, function(){ 
//鼠标离开a元素时,动画滑块返回current元素位置 
$nav_animate_block.stop().animate({ 
width: current_nav_width, 
left: current_nav_left 
}) 
}) 
}); 
</script> 
</head> 
<body> 
<div id="nav_wrapper"> 
<div id="nav_menu"> 
<a href="#" id="current_nav">首页</a> 
<a href="#">产品列表</a> 
<a href="#">客户案例</a> 
<a href="#">服务平台</a> 
<a href="#">交流论坛</a> 
<a href="#">关于我们</a> 
</div> 
<div id="nav_animate_block"></div> 
</div> 
</body> 
</html>
Javascript 相关文章推荐
jquery中获取select选中值的代码
Jun 27 Javascript
js 取时间差去掉周六周日实现代码
Dec 25 Javascript
Javascript中arguments对象详解
Oct 22 Javascript
jqGrid中文文档之选项设置
Dec 02 Javascript
javascript实现抽奖程序的简单实例
Jun 07 Javascript
第一次接触Bootstrap框架
Oct 24 Javascript
jQuery validata插件实现方法
Jun 25 jQuery
详谈js原型继承的一些问题
Sep 06 Javascript
node 利用进程通信实现Cluster共享内存
Oct 27 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
Jan 13 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
Jun 05 jQuery
vue-cli脚手架搭建的项目去除eslint验证的方法
Sep 29 Javascript
js通过地址栏给action传值(中文乱码全是问号)
May 02 #Javascript
如何使用jQuery来处理图片坏链具体实现步骤
May 02 #Javascript
jQuery仿Excel表格编辑功能的实现代码
May 01 #Javascript
JavaScript 实现类的多种方法实例
May 01 #Javascript
Json字符串转换为JS对象的高效方法实例
May 01 #Javascript
Jquery post传递数组方法实现思路及代码
Apr 28 #Javascript
javascript中的onkeyup和onkeydown区别介绍
Apr 28 #Javascript
You might like
php session实现多级目录存放实现代码
2016/02/03 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
JavaScript 学习笔记(十一)
2010/01/19 Javascript
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
jQuery/CSS3图片特效插件整理推荐
2014/12/07 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
AngularJS自定义插件实现网站用户引导功能示例
2016/11/07 Javascript
关于TypeScript中import JSON的正确姿势详解
2017/07/25 Javascript
Angular项目从新建、打包到nginx部署全过程记录
2017/12/09 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
微信小程序实现发送验证码按钮效果
2018/12/20 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
2019/05/29 Javascript
微信小程序基础教程之worker线程的使用方法
2019/07/15 Javascript
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
python 自动提交和抓取网页
2009/07/13 Python
Python如何实现守护进程的方法示例
2017/02/08 Python
给我一面国旗 python帮你实现
2019/09/30 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
2020/03/06 Python
Python语法垃圾回收机制原理解析
2020/03/25 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
2020/05/26 Python
Python基于字典实现switch case函数调用
2020/07/22 Python
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
阿根廷首家户外用品制造商和经销商:Montagne
2018/02/12 全球购物
建材业务员岗位职责
2013/12/08 职场文书
法人代表授权委托书
2014/04/08 职场文书
小学校长竞聘演讲稿
2014/05/16 职场文书
美丽人生观后感
2015/06/03 职场文书
餐馆开业致辞
2015/08/01 职场文书
大学生活委员竞选稿
2015/11/21 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
2016年万圣节活动个人总结
2016/04/05 职场文书
人力资源部工作计划
2019/05/14 职场文书