js實(shí)現(xiàn)的動(dòng)畫(huà)導(dǎo)航菜單效果代碼
本文實(shí)例講述了js實(shí)現(xiàn)的動(dòng)畫(huà)導(dǎo)航菜單效果代碼。分享給大家供大家參考。具體如下:
這是一款簡(jiǎn)單的動(dòng)畫(huà)導(dǎo)航菜單效果,每個(gè)菜單項(xiàng)的下邊有一個(gè)橫線會(huì)隨著鼠標(biāo)的對(duì)應(yīng)而自動(dòng)滑動(dòng),指明當(dāng)前菜單的位置。
運(yùn)行效果截圖如下:
在線演示地址如下:
http://demo.jb51.net/js/2015/js-animate-nav-menu-style-codes/
<!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>動(dòng)畫(huà)導(dǎo)航菜單</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>
希望本文所述對(duì)大家的JavaScript程序設(shè)計(jì)有所幫助。
- 在iframe里的頁(yè)面編寫(xiě)js,實(shí)現(xiàn)在父窗口上創(chuàng)建動(dòng)畫(huà)效果展開(kāi)和收縮的div(不變動(dòng)iframe父窗口代碼)
- js實(shí)現(xiàn)div拖動(dòng)動(dòng)畫(huà)運(yùn)行軌跡效果代碼分享
- js+css實(shí)現(xiàn)文字散開(kāi)重組動(dòng)畫(huà)特效代碼分享
- js實(shí)現(xiàn)按鈕顏色漸變動(dòng)畫(huà)效果
- 使用ngView配合AngularJS應(yīng)用實(shí)現(xiàn)動(dòng)畫(huà)效果的方法
- JS實(shí)用的動(dòng)畫(huà)彈出層效果實(shí)例
- JS簡(jiǎn)單實(shí)現(xiàn)動(dòng)畫(huà)彈出層效果
- js運(yùn)動(dòng)動(dòng)畫(huà)的八個(gè)知識(shí)點(diǎn)
- js實(shí)現(xiàn)動(dòng)畫(huà)特效的文字鏈接鼠標(biāo)懸停提示的方法
- JS實(shí)現(xiàn)網(wǎng)頁(yè)右側(cè)帶動(dòng)畫(huà)效果的伸縮窗口代碼
相關(guān)文章
基于dataset的使用和圖片延時(shí)加載的實(shí)現(xiàn)方法
下面小編就為大家分享一篇基于dataset的使用和圖片延時(shí)加載的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12基于JavaScript實(shí)現(xiàn)報(bào)警器提示音效果
這篇文章給大家分享分享一段代碼基于JavaScript實(shí)現(xiàn)報(bào)警器提示音效果,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-10-10頁(yè)面中body onload 和 window.onload 沖突的問(wèn)題的解決
關(guān)于頁(yè)面中body onload 和 window.onload 沖突的問(wèn)題的解決2009-07-07使用微信小程序API,調(diào)用微信的各種內(nèi)置能力。
微信小程序如何使用小程序API,去調(diào)用微信提供的各種內(nèi)置能力(即微信API)。小程序開(kāi)發(fā)框架提供豐富的微信原生API,可以方便的調(diào)起微信提供的能力,如獲取用戶(hù)信息,本地存儲(chǔ),支付功能等。2022-12-12小程序?qū)崿F(xiàn)分頁(yè)查詢(xún)列表的模板
這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)分頁(yè)查詢(xún)列表的模板,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08JavaScript使用setTimeout實(shí)現(xiàn)延遲彈出警告框的方法
這篇文章主要介紹了JavaScript使用setTimeout實(shí)現(xiàn)延遲彈出警告框的方法,實(shí)例分析了javascript中setTimeout函數(shù)的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04JavaScript的9個(gè)陷阱及評(píng)點(diǎn)分析
以下是JavaScript容易犯錯(cuò)的九個(gè)陷阱。雖然不是什么很高深的技術(shù)問(wèn)題,但注意一下,會(huì)使您的編程輕松些,即所謂make life easier. 筆者對(duì)某些陷阱會(huì)混雜一些評(píng)點(diǎn)。2008-05-05