js实现的动画导航菜单效果代码
网络编程 2021-07-04 21:03www.168986.cn编程入门
这篇文章主要介绍了js实现的动画导航菜单效果代码,涉及JavaScript通过鼠标事件控制页面元素样式动态变换的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了js实现的动画导航菜单效果代码。分享给大家供大家参考。具体如下
这是一款简单的动画导航菜单效果,每个菜单项的下边有一个横线会随着鼠标的对应而自动滑动,指明当前菜单的位置。
运行效果截图如下
在线演示地址如下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://.w3./TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://.w3./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-: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程序设计有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程