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 相关文章推荐
如何用ajax来创建一个XMLHttpRequest对象
Dec 10 Javascript
当jQuery1.7遇上focus方法的问题
Jan 26 Javascript
JS去掉第一个字符和最后一个字符的实现代码
Feb 20 Javascript
js统计页面的来访次数实现代码
May 09 Javascript
jquery中show()、hide()和toggle()用法实例
Jan 15 Javascript
jQuery实现复选框成对选择及对应取消的方法
Mar 03 Javascript
详解js中构造流程图的核心技术JsPlumb
Dec 08 Javascript
Vue自定义指令介绍(2)
Dec 08 Javascript
使用layui 渲染table数据表格的实例代码
Aug 19 Javascript
微信小程序中遇到的iOS兼容性问题小结
Nov 14 Javascript
vue路由切换之淡入淡出的简单实现
Oct 31 Javascript
原生js实现日期选择插件
May 21 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怎么实现网站保存快捷方式方便用户随时浏览
2013/08/15 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
详解addEventListener的三个参数之useCapture
2015/03/16 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
JS重载实现方法分析
2016/12/16 Javascript
Bootstrap CSS布局之代码
2016/12/17 Javascript
原生JS+Canvas实现五子棋游戏实例
2017/06/19 Javascript
利用babel将es6语法转es5的简单示例
2017/12/01 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
js序列化和反序列化的使用讲解
2019/01/19 Javascript
layui表格 列自动适应大小失效的解决方法
2019/09/06 Javascript
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
用Python解决计数原理问题的方法
2016/08/04 Python
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
python定时关机小脚本
2018/06/20 Python
python设置值及NaN值处理方法
2018/07/03 Python
Python数据可视化实现正态分布(高斯分布)
2019/08/21 Python
python3实现elasticsearch批量更新数据
2019/12/03 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
python如何提取英语pdf内容并翻译
2020/03/03 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
在pycharm中debug 实时查看数据操作(交互式)
2020/06/09 Python
Python+pyftpdlib实现局域网文件互传
2020/08/24 Python
Stubhub英国:购买体育、演唱会和剧院门票
2018/06/10 全球购物
急诊科护士自我鉴定
2013/10/14 职场文书
安全资料员岗位职责
2013/12/14 职场文书
银行个人求职自荐信范文
2013/12/16 职场文书
商学院大学生求职的自我评价
2014/03/12 职场文书
新员工试用期自我评价
2015/03/10 职场文书
2015年学校远程教育工作总结
2015/07/20 职场文书
初中信息技术教学反思
2016/02/16 职场文书
简单介绍Python的第三方库yaml
2021/06/18 Python