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 可以拖动的div实现代码 脚本之家修正版
Jun 26 Javascript
js对象之JS入门之Array对象操作小结
Jan 09 Javascript
js中 关于undefined和null的区别介绍
Apr 16 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
Dec 04 Javascript
jquery禁用右键示例
Apr 28 Javascript
jquery模拟进度条实现方法
Aug 03 Javascript
JavaScript继承学习笔记【新手必看】
May 10 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
Sep 03 Javascript
微信小程序实现实时圆形进度条的方法示例
Feb 24 Javascript
p5.js入门教程和基本形状绘制
Mar 15 Javascript
剖析Angular Component的源码示例
Mar 23 Javascript
js、jquery实现列表模糊搜索功能过程解析
Mar 27 jQuery
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中time()和mktime()方法的区别
2013/09/28 PHP
php中实现精确设置session过期时间的方法
2014/07/17 PHP
php实现简单加入购物车功能
2017/03/07 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
PHP远程连接oracle数据库操作实现方法图文详解
2019/04/11 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
Extjs学习笔记之四 工具栏和菜单
2010/01/07 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
jquery中load方法的用法及注意事项说明
2014/02/22 Javascript
使用Node.js处理前端代码文件的编码问题
2016/02/16 Javascript
Bootstrap进度条学习使用
2017/02/09 Javascript
基于JS实现翻书效果的页面切换样式
2017/02/16 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
JS实现复制功能
2017/03/01 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
Less 安装及基本用法
2018/05/05 Javascript
Vue使用lodop实现打印小结
2019/07/06 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
node运行js获得输出的三种方式示例详解
2020/07/02 Javascript
[02:43]DOTA2英雄基础教程 德鲁伊
2014/01/13 DOTA
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
Python程序设计入门(4)模块和包
2014/06/16 Python
pycharm debug功能实现跳到循环末尾的方法
2018/11/29 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
python 动态调用函数实例解析
2019/10/21 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)
2021/01/10 Python
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
vue项目实现分页效果
2021/03/24 Vue.js
工程造价管理专业大专生求职信
2013/10/06 职场文书
体育教师自荐信范文
2013/12/16 职场文书
导购员的岗位职责
2014/02/08 职场文书
不同意离婚代理词
2015/05/23 职场文书
2016校本研修培训心得体会
2016/01/08 职场文书
python urllib库的使用详解
2021/04/13 Python
MySQL自定义函数及触发器
2022/08/05 MySQL