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 相关文章推荐
使用prototype.js 的时候应该特别注意的几个问题.
Apr 12 Javascript
javascript图像处理—仿射变换深度理解
Jan 16 Javascript
cookie.js 加载顺序问题怎么才有效
Jul 31 Javascript
JavaScript动态改变表格单元格内容的方法
Mar 30 Javascript
iframe里使用JavaScript控制主页转向的方法
Apr 03 Javascript
JavaScript中使用Math.PI圆周率属性的方法
Jun 14 Javascript
jQuery序列化表单成对象的简单实现
Nov 29 Javascript
微信小程序 request接口的封装实例代码
Apr 26 Javascript
vuex 的简单使用
Mar 22 Javascript
JS实现头条新闻的经典轮播图效果示例
Jan 30 Javascript
详解Vue中使用Axios拦截器
Apr 22 Javascript
vue data恢复初始化数据的实现方法
Oct 31 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
动态新闻发布的实现及其技巧
2006/10/09 PHP
php和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
使用GD库生成带阴影文字的图片
2015/03/27 PHP
php获取flash尺寸详细数据的方法
2016/11/12 PHP
thinkPHP5.0框架事务处理操作简单示例
2018/09/07 PHP
网页的标准,IMG不支持onload标签怎么办
2006/06/29 Javascript
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
js如何实现淡入淡出效果
2020/11/18 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
jQuery继承extend用法详解
2016/10/10 Javascript
详解JavaScript模块化开发
2016/12/04 Javascript
vue.js父组件使用外部对象的方法示例
2017/04/25 Javascript
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
JavaScript实现QQ列表展开收缩扩展功能
2017/10/30 Javascript
Preload基础使用方法详解
2020/02/03 Javascript
基于redis的小程序登录实现方法流程分析
2020/05/25 Javascript
[04:03]DOTA2肉山黑名单梦之声 风暴之灵中文配音鉴赏
2013/07/03 DOTA
Python实现常见的回文字符串算法
2018/11/14 Python
解决使用PyCharm时无法启动控制台的问题
2019/01/19 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
python自动化UI工具发送QQ消息的实例
2019/08/27 Python
python线程join方法原理解析
2020/02/11 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
2020/06/02 Python
印尼极简主义和实惠的在线家具店:Fabelio
2019/03/27 全球购物
俄罗斯三星品牌商店:Samsungstore
2020/04/05 全球购物
求职信写作要突出重点
2014/01/01 职场文书
协议书范本
2014/04/23 职场文书
物理系毕业生自荐书
2014/06/13 职场文书
驾驶员安全责任书
2014/07/22 职场文书
党的群众路线教育实践活动对照检查材料(个人)
2014/09/24 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书
爱护公物主题班会
2015/08/17 职场文书
《画家和牧童》教学反思
2016/02/17 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang