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 相关文章推荐
让网页根据不同IE版本显示不同的内容
Feb 08 Javascript
js形成页面的一种遮罩效果实例代码
Jan 04 Javascript
js面向对象之静态方法和静态属性实例分析
Jan 10 Javascript
Underscore.js 1.3.3 中文注释翻译说明
Jun 25 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
Jul 27 Javascript
JavaScript实现简单的拖动效果
Jul 02 Javascript
Bootstrap Table表格一直加载(load)不了数据的快速解决方法
Sep 17 Javascript
原生js仿jquery实现对Ajax的封装
Oct 04 Javascript
js图片上传的封装代码
Aug 01 Javascript
在vue中使用G2图表的示例代码
Mar 19 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
Dec 31 Javascript
nuxt 路由、过渡特效、中间件的实现代码
Nov 06 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
DSP接收机前端设想
2021/03/02 无线电
php 变量未定义等错误的解决方法
2011/01/12 PHP
10个php函数实用却不常见
2015/10/13 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
2015/12/24 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
2017/07/10 PHP
原创javascript小游戏实现代码
2010/08/19 Javascript
JS时间选择器 兼容IE6,7,8,9
2012/06/26 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
2013/08/26 Javascript
js实现在同一窗口浏览图片
2014/09/17 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
jQuery实现带动画效果的二级下拉导航方法
2015/03/11 Javascript
一不小心就做错的JS闭包面试题
2015/11/25 Javascript
Bootstrap Paginator分页插件使用方法详解
2016/05/30 Javascript
JavaScript 最佳实践:帮你提升代码质量
2016/12/03 Javascript
原生js实现手风琴功能(支持横纵向调用)
2017/01/13 Javascript
javascript自定义事件功能与用法实例分析
2017/11/08 Javascript
谈谈React中的Render Props模式
2018/12/06 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
2019/04/26 Javascript
微信小程序开发技巧汇总
2019/07/15 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
Python使用redis pool的一种单例实现方式
2016/04/16 Python
python基于物品协同过滤算法实现代码
2018/05/31 Python
Python单链表原理与实现方法详解
2020/02/22 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
2020/04/17 Python
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
个人求职信范文分享
2013/12/13 职场文书
优秀求职自荐信怎样写
2013/12/18 职场文书
生产部岗位职责范文
2014/02/07 职场文书
党员干部反四风对照检查材料思想汇报
2014/09/14 职场文书
杨善洲电影观后感
2015/06/04 职场文书
2016年秋季运动会通讯稿
2015/11/25 职场文书
您对思维方式了解多少?
2019/12/09 职场文书
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers
2007年老电脑安装win11会怎么样? 网友实测win11在老电脑运行良好
2021/11/21 数码科技