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 19 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
Oct 26 Javascript
Javascript图像处理—为矩阵添加常用方法
Dec 27 Javascript
js实现禁止中文输入的方法
Jan 14 Javascript
又一枚精彩的弹幕效果jQuery实现
Jul 25 Javascript
相册展示PhotoSwipe.js插件实现
Aug 25 Javascript
BootStrap无限级分类(无限极分类封装版)
Aug 26 Javascript
使用Curl命令查看请求响应时间方法
Nov 04 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
Jan 21 Javascript
js实现5秒倒计时重新发送短信功能
Feb 05 Javascript
详解Sea.js中Module.exports和exports的区别
Feb 12 Javascript
bootstrap-Treeview实现级联勾选
Nov 23 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下通过伪造http头破解防盗链的代码
2010/07/03 PHP
PHP中其实也可以用方法链
2011/11/10 PHP
linux中cd命令使用详解
2015/01/08 PHP
PHP 7.0新增加的特性介绍
2017/06/08 PHP
CL vs ForZe BO5 第五场 2.13
2021/03/10 DOTA
JavaScript 函数调用规则
2009/09/14 Javascript
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
JavaScript高级程序设计 阅读笔记(十七) js事件
2012/08/14 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
jquery跟js初始化加载的多种方法及区别介绍
2014/04/02 Javascript
javascript实现控制浏览器全屏
2015/03/30 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
2017/03/29 Javascript
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
2017/06/17 Javascript
vscode 开发Vue项目的方法步骤
2018/11/25 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
2019/07/16 Javascript
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
Python作用域用法实例详解
2016/03/15 Python
基于Python实现对PDF文件的OCR识别
2016/08/05 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
2018/03/19 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
python如何生成网页验证码
2018/07/28 Python
对python模块中多个类的用法详解
2019/01/10 Python
Django REST framework视图的用法
2019/01/16 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
html5清空画布方法(三种)
2017/10/16 HTML / CSS
Nice Kicks网上商店:ShopNiceKicks.com
2018/12/25 全球购物
教师实习期自我鉴定
2013/10/06 职场文书
日语求职信范文
2013/12/17 职场文书
党支部组织生活会整改方案
2014/09/30 职场文书
工程质检员岗位职责
2015/04/08 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers