js实现的动画导航菜单效果代码


Posted in Javascript onSeptember 10, 2015

本文实例讲述了js实现的动画导航菜单效果代码。分享给大家供大家参考。具体如下:

这是一款简单的动画导航菜单效果,每个菜单项的下边有一个横线会随着鼠标的对应而自动滑动,指明当前菜单的位置。

运行效果截图如下:

js实现的动画导航菜单效果代码

在线演示地址如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>动画导航菜单</title>
<style type="text/css">
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote{margin:0; padding:0;}
body { font:12px "\5B8B\4F53",san-serif; color:#808080; padding-top:6px; }
a { text-decoration:none; color:#808080 }
a:hover { text-decoration:underline; color:#ba2636 }
ul, li { list-style:none; }
#nav{ padding:41px 0 0 0; height:27px;width:542px; overflow:hidden; float:right; margin-right:17px;position:relative ;}
#nav ul{ height:27px; width:100%; background: url(i/naVbotBdr.gif) repeat-x 0 100%; }
#nav ul li{ width:67px; height:24px; float:left; padding-right:28px; display:inline; cursor:pointer; overflow:hidden}
#nav a{background:#999;width:100%; height:24px; display:block; float:left; outline:none; color:#fff; line-height:24px; text-align:center; font-size:16px; font-weight:bold; overflow:hidden}
#navCur{ position:absolute; left:0; bottom:0; height:3px; color:#F00; width:67px; margin:0; padding:0; display: block; float:none; background:#FF0000; cursor:pointer; overflow:hidden}
</style>
</head>
<body>
  <div id="nav">
  <ul class="cf">
  <li><a href="" hidefocus="true">1</a></li>
  <li><a href="1" hidefocus="true">2</a></li>
  <li class="cur"><a href="2" hidefocus="true">3</a></li>
  <li><a href="3" hidefocus="true">4</a></li>
  <li><a href="4" hidefocus="true">5</a></li>
  <li><a href="5" hidefocus="true">6</a></li>
 </ul>
  <span id="navCur"></span>
 </div>
<script type="text/javascript">
(function(){
 var curPostion,thisLeft, curPostion_1;
 var obj = getId('nav').getElementsByTagName('ul')[0], timer = null ,navCur = getId('navCur'),x,liArr = getId('nav').getElementsByTagName('li'),liLength = liArr.length-1;
 for (var x=0;x<liArr.length; x++ ){
  liArr[liLength].style.paddingRight = "0";
  var li = liArr[x],curPostion = navCur.offsetLeft;
  if(li.className == "cur"){ 
   navCur.style.left = li.offsetLeft + "px";
  }
  li.onmouseover=function(){
   clearTimeout(timer);
   thisLeft = this.offsetLeft;
   if (thisLeft > navCur.offsetLeft)
   {
    hover();
   }
   else
   {
    curPostion_1 = this.offsetLeft;
    out();
   }
  };
  li.onmouseout=function(){
   clearTimeout(timer);
   if (curPostion < navCur.offsetLeft)
   {
    curPostion_1 = curPostion;
    out();
   }
   else
   {
    thisLeft = curPostion;
    hover();
   }
  };
 }
 function hover(){
  if (navCur.offsetLeft <= thisLeft)
  {
   var a = Math.max(parseInt((thisLeft - navCur.offsetLeft) / 15), 3);
   navCur.style.left = navCur.offsetLeft + a + "px";
   timer = setTimeout(arguments.callee, 5);
  }
  else
  {
   navCur.style.left = thisLeft + "px";
   clearTimeout(timer);
  }
 }
 function out(){
  if (navCur.offsetLeft >= curPostion_1)
  {
   var a = Math.max(parseInt((navCur.offsetLeft - curPostion_1) / 15), 3);
   navCur.style.left = navCur.offsetLeft - a + "px";
   timer = setTimeout(arguments.callee, 5);
  }
  else
  {
   navCur.style.left = curPostion_1 + "px";
   clearTimeout(timer);
  }
 }
 function getId(id){
  return document.getElementById(id)
 }
})();
</script>
</body>
</html>

希望本文所述对大家的JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript 设计模式学习 Singleton
Jul 27 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
Jan 07 Javascript
js检验密码强度(低中高)附图
Jun 05 Javascript
原生javascript实现的ajax异步封装功能示例
Nov 03 Javascript
jQuery仿写百度百科的目录树
Jan 03 Javascript
JS基于for语句编写的九九乘法表示例
Jan 04 Javascript
node使用promise替代回调函数
May 07 Javascript
微信小程序实现弹出菜单
Jul 19 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
Oct 09 Javascript
详解jQuery-each()方法
Mar 13 jQuery
webpack3.0升级4.0的方法步骤
Apr 02 Javascript
vue点击标签切换选中及互相排斥操作
Jul 17 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
Sep 09 #Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
Sep 09 #Javascript
jQuery实现MSN中文网滑动Tab菜单效果代码
Sep 09 #Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
Sep 09 #Javascript
JS实现自动变换的菜单效果代码
Sep 09 #Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
Sep 09 #Javascript
JS实现自动变化的导航菜单效果代码
Sep 09 #Javascript
You might like
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/29 PHP
php函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
php操作memcache缓存方法分享
2015/06/03 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
2017/02/18 PHP
用Div仿showModalDialog模式菜单的效果的代码
2007/03/05 Javascript
javascript for循环设法提高性能
2010/02/24 Javascript
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
JavaScript中的函数(二)
2015/12/23 Javascript
使用递归遍历对象获得value值的实现方法
2016/06/14 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
老生常谈javascript的类型转换
2016/10/12 Javascript
jquery dataTable 后台加载数据并分页实例代码
2017/06/07 jQuery
微信web端后退强制刷新功能的实现代码
2018/03/04 Javascript
详解webpack模块加载器兼打包工具
2018/09/11 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
微信小程序事件 bindtap bindinput代码实例
2019/08/26 Javascript
解决layui数据表格Date日期格式的回显Object的问题
2019/09/19 Javascript
基于js判断浏览器是否支持webGL
2020/04/18 Javascript
vue点击标签切换选中及互相排斥操作
2020/07/17 Javascript
使用Python的Flask框架构建大型Web应用程序的结构示例
2016/06/04 Python
详解Python if-elif-else知识点
2018/06/11 Python
Python pygorithm模块用法示例【常见算法测试】
2018/08/16 Python
Python pickle模块实现对象序列化
2019/11/22 Python
Python爬虫headers处理及网络超时问题解决方案
2020/06/19 Python
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
药店主任岗位责任制
2014/02/10 职场文书
大学同学十年聚会感言
2014/02/21 职场文书
元宵节主持词
2014/03/25 职场文书
2015年出纳工作总结与计划
2015/05/18 职场文书
黑暗中的舞者观后感
2015/06/18 职场文书
投诉信范文
2015/07/02 职场文书
学习心得体会
2019/06/20 职场文书
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL
详解TypeScript的基础类型
2022/02/18 Javascript