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 相关文章推荐
浏览器加载、渲染和解析过程黑箱简析
Nov 29 Javascript
Extjs Gird 支持中文拼音排序实现代码
Apr 15 Javascript
Javascript变量作用域详解
Dec 06 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
Mar 09 Javascript
JavaScript识别网页关键字并进行描红的方法
Nov 09 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
Jan 30 Javascript
微信小程序页面开发注意事项整理
May 18 Javascript
详解基于webpack&amp;gettext的前端多语言方案
Jan 29 Javascript
浅谈Vue.use到底是什么鬼
Jan 21 Javascript
JavaScript实现移动端带transition动画的轮播效果
Mar 24 Javascript
微信小程序手动添加收货地址省市区联动
May 18 Javascript
Vue循环中多个input绑定指定v-model实例
Aug 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
php将数据库中的电话号码读取出来并生成图片
2008/08/31 PHP
PHP 基本语法格式
2009/12/15 PHP
教你如何快捷的使用cmd访问mysql小技巧
2014/05/26 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
2015/06/17 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
2006/09/22 Javascript
如何实现JS函数的重载
2006/09/22 Javascript
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
页面回到顶部的三种实现(锚标记,js)
2012/10/01 Javascript
验证码按回车不变解决方法
2013/03/29 Javascript
jsp+javascript打造级连菜单的实例代码
2013/06/14 Javascript
window.onload追加函数使用示例
2014/03/03 Javascript
js获得当前系统日期时间的方法
2015/05/06 Javascript
JS实现点击事件统计的简单实例
2016/07/10 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
js模态对话框使用方法详解
2017/02/16 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
探索Vue高阶组件的使用
2018/01/08 Javascript
vue图片上传本地预览组件使用详解
2019/02/20 Javascript
vue3 源码解读之 time slicing的使用方法
2019/10/31 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
[23:21]Ti4 冒泡赛第二轮DK vs C9 2
2014/07/14 DOTA
Python之NumPy(axis=0 与axis=1)区分详解
2019/05/27 Python
Python 3 实现定义跨模块的全局变量和使用教程
2019/07/07 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
pytorch中的transforms模块实例详解
2019/12/31 Python
Python任务调度模块APScheduler使用
2020/04/15 Python
Python使用pyenv实现多环境管理
2021/02/05 Python
艺术专业大学生自我评价
2013/09/22 职场文书
人民教师求职自荐信
2014/03/12 职场文书
情人节寄语大全
2014/04/11 职场文书
踏青活动策划方案
2014/08/19 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
浅谈Golang 切片(slice)扩容机制的原理
2021/06/09 Golang
Go并发4种方法简明讲解
2022/04/06 Golang