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插件开发注意事项小结
Jun 04 Javascript
多个datatable共存造成多个表格的checkbox都被选中
Jul 11 Javascript
浅析JavaScript中的同名标识符优先级
Dec 06 Javascript
Javascript实现快速排序(Quicksort)的算法详解
Sep 06 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
Oct 02 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
Feb 09 Javascript
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
Apr 26 jQuery
bootstrap模态框关闭后清除模态框的数据方法
Aug 10 Javascript
vue动态配置模板 'component is'代码
Jul 04 Javascript
关于layui导航栏不展示下拉列表的解决方法
Sep 25 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
Aug 28 Javascript
vue keep-alive的简单总结
Jan 25 Vue.js
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
一个用于网络的工具函数库
2006/10/09 PHP
php 获取本地IP代码
2013/06/23 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
JavaScript中Object和Function的关系小结
2009/09/26 Javascript
JS 控制非法字符的输入代码
2009/12/04 Javascript
JavaScript日历实现代码
2010/09/12 Javascript
js页面跳转的常用方法整理
2013/10/18 Javascript
使用jQuery和PHP实现类似360功能开关效果
2014/02/12 Javascript
JavaScript弹出新窗口并控制窗口移动到指定位置的方法
2015/04/06 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
JS设置手机验证码60s等待实现代码
2017/06/14 Javascript
深入解析Vue 组件命名那些事
2017/07/18 Javascript
javascript流程控制语句集合
2017/09/18 Javascript
vue.js的computed,filter,get,set的用法及区别详解
2018/03/08 Javascript
详解JQuery基础动画操作
2019/04/12 jQuery
解决vue scoped scss 无效的问题
2020/09/04 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
给Python初学者的一些编程技巧
2015/04/03 Python
Python中的并发处理之asyncio包使用的详解
2018/04/03 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
2018/06/19 Python
Python实现多线程的两种方式分析
2018/08/29 Python
Python标准库json模块和pickle模块使用详解
2020/03/10 Python
浅谈tensorflow模型保存为pb的各种姿势
2020/05/25 Python
Python中flatten( ),matrix.A用法说明
2020/07/05 Python
免费获得微软MCSD证书赶快行动吧!
2012/11/13 HTML / CSS
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
荷兰在线体育用品商店:Avantisport.nl
2018/07/04 全球购物
小学新教师培训方案
2014/02/03 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
2015年工商所工作总结
2015/05/21 职场文书
大学生就业指导课心得体会
2016/01/15 职场文书
Python初学者必备的文件读写指南
2021/06/23 Python
Golang 对es的操作实例
2022/04/20 Golang
使用refresh_token实现无感刷新页面
2022/04/26 Javascript