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 相关文章推荐
一些技巧性实用js代码小结
Oct 14 Javascript
javascript面向对象编程代码
Dec 19 Javascript
利用jquery的获取JS文件中的字符串内容
Feb 14 Javascript
js模仿jquery的写法示例代码
Jun 16 Javascript
基于JavaScript实现随机颜色输入框
Dec 10 Javascript
JavaScript字符串检索字符的方法
Jun 23 Javascript
通过fastclick源码分析彻底解决tap“点透”
Dec 24 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
Mar 05 Javascript
微信小程序实现页面浮动导航
Jan 28 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
May 08 Javascript
elementUI select组件value值注意事项详解
May 29 Javascript
Vue时间轴 vue-light-timeline的用法说明
Oct 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
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
一些有关检查数据的JS代码
2006/09/07 Javascript
类之Prototype.js学习
2007/06/13 Javascript
javascript 操作文件 实现方法小结
2009/07/02 Javascript
循环 vs 递归浅谈
2013/02/28 Javascript
jquery 实现两Select 标签项互调示例代码
2014/09/25 Javascript
js判断是否按下了Shift键的方法
2015/01/27 Javascript
js纯数字逐一停止显示效果的实现代码
2016/03/16 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
js html5 css俄罗斯方块游戏再现
2016/10/17 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
JS运动特效之链式运动分析
2018/01/24 Javascript
Vue 自定义动态组件实例详解
2018/03/28 Javascript
React 使用browserHistory项目访问404问题解决
2018/06/01 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
[25:45]2018DOTA2亚洲邀请赛4.5SOLO赛 Sylar vs Paparazi
2018/04/06 DOTA
Python实现的Kmeans++算法实例
2014/04/26 Python
Python实现单词拼写检查
2015/04/25 Python
在windows下快速搭建web.py开发框架方法
2016/04/22 Python
Python实现二维有序数组查找的方法
2016/04/27 Python
Python编程实现正则删除命令功能
2017/08/30 Python
python列表使用实现名字管理系统
2019/01/30 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
tensorflow自定义激活函数实例
2020/02/04 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
当当网官方旗舰店:中国图书销售夺金品牌
2018/04/02 全球购物
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
2014年小班元旦活动方案
2014/02/16 职场文书
融资租赁计划书
2014/04/29 职场文书
个人四风对照检查材料
2014/09/26 职场文书
《狮子和鹿》教学反思
2016/02/16 职场文书
2019让人心动的商业计划书
2019/06/27 职场文书
读鲁迅先生的经典名言
2019/08/20 职场文书
Django 如何实现文件上传下载
2021/04/08 Python