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的面向对象(二)
Nov 09 Javascript
javascript与jquery中跳出循环的区别总结
Nov 04 Javascript
原生js做的手风琴效果的导航菜单
Nov 08 Javascript
jquery操作select大全
Apr 25 Javascript
javascript 寻找错误方法整理
Jun 15 Javascript
Angular的MVC和作用域
Dec 26 Javascript
JavaScript三种绑定事件方式及相互之间的区别分析
Jan 10 Javascript
Bootstrap页面缩小变形的快速解决办法
Feb 03 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
Aug 29 jQuery
Web开发使用Angular实现用户密码强度判别的方法
Sep 27 Javascript
微信小程序 上传头像的实例详解
Oct 27 Javascript
微信小程序利用swiper+css实现购物车商品删除功能
Mar 06 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
DIY实用性框形天线
2021/03/02 无线电
PHP5/ZendEngine2的改进
2006/10/09 PHP
数据库相关问题
2006/10/09 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
2014/03/17 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
PDO::quote讲解
2019/01/29 PHP
仿jQuery的siblings效果的js代码
2011/08/09 Javascript
jquery自定义下拉列表示例
2014/04/25 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
js简单的点击返回顶部效果实现方法
2015/04/10 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
2016/12/26 Javascript
Javascript实现的StopWatch功能示例
2017/06/13 Javascript
解决vue-cli中stylus无法使用的问题方法
2017/06/19 Javascript
vue-cli中的babel配置文件.babelrc实例详解
2018/02/22 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
python 字符串split的用法分享
2013/03/23 Python
Python利用IPython提高开发效率
2016/08/10 Python
Flask框架各种常见装饰器示例
2018/07/17 Python
python制作朋友圈九宫格图片
2019/11/03 Python
Python小白垃圾回收机制入门
2020/06/09 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
HTML5 Canvas中绘制矩形实例
2015/01/01 HTML / CSS
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
高中的自我鉴定
2013/12/16 职场文书
房产买卖委托公证书
2014/04/04 职场文书
五五普法心得体会
2014/09/04 职场文书
法院干警四风问题个人对照检查材料思想汇报
2014/10/07 职场文书
旗帜观后感
2015/06/08 职场文书
建议书的格式及范文
2015/09/14 职场文书
《学会生存》读后感3篇
2019/12/09 职场文书
Python控制台输出俄罗斯方块移动和旋转功能
2021/04/18 Python
用CSS3画一个爱心
2021/04/27 HTML / CSS
html form表单基础入门案例讲解
2021/07/21 HTML / CSS
利用nginx搭建RTMP视频点播、直播、HLS服务器
2022/05/25 Servers