原文:http://www.wler.cn/blog/index.php/maiji/8
誰在用這些導(dǎo)航
google是個大公司,全世界都有g(shù)oogle的腳印,韓國的google動畫效果非常不錯,藍(lán)色理想論壇里已經(jīng)有人挖過來了,可惜js寫的太多了,那自己寫一個吧?好,就這么干!
原理
小時候,總喜歡看動畫片吧,動畫片是怎樣實現(xiàn)的呢?記得媽媽說是一張畫一張畫切換過去(啊?那一部葫蘆兄弟要畫多少副畫啊? -_-! ),其實我們現(xiàn)在做的也是這樣,用一個圖片,這個圖片里有很多個小圖,來顯示動畫軌跡.按時間來移動圖片,那圖片不是會動了啊?(不知道,表達(dá)清楚了沒…語文很重要啊!!)
準(zhǔn)備
我們需要一張圖片,一個大腦,一張會笑的臉(不笑效果就出不來了….)!!下面是我準(zhǔn)備的圖片(ps水平有限^_^)…
代碼
我們看到上面的圖片,想象下,它動起來是多么的優(yōu)美啊…
css
.Gnb_btn_div{ width:90px; height:75px; overflow:hidden; display:block; position:absolute; }
.Gnb_btn_img{ width:100%; height:525px; display:block; overflow:hidden; text-indent:-500px; } #gnb_btn_01 .Gnb_btn_img { background-image:url(http://www.wler.cn/blog/img/friend.gif) }
javascript:
<script type="text/javascript"> // <![CDATA[ function GNB(_7c){ //初始化一些參數(shù) this.iImgNum=7; //小圖片個數(shù) this.iImgHeight=75; //小圖片高度 this.iOverSpeed=50; //鼠標(biāo)經(jīng)過時候切換的時間 this.iOutSpeed=50; //鼠標(biāo)離開時候切換的時間 this.eventObj=_7c; //取得圖片對象
this.MouseOverFlag=false; this.imageIndex=0; if(this.eventObj==null){return;} this.eventObj.parentClass=this;this.eventAssign(); }
GNB.prototype.eventAssign=function(){//注冊事件 this.eventObj.onmouseover=this.menuMouseOver; this.eventObj.onmouseout=this.menuMouseOut; };
GNB.prototype.menuMouseOver=function(){//鼠標(biāo)經(jīng)過 if(this.parentClass.MouseOverFlag!=false){return;} this.parentClass.MouseOverFlag=true; this.parentClass.clearTimeOut(); this.parentClass.menuMouseOverTimer(); };
GNB.prototype.menuMouseOut=function(){//鼠標(biāo)離開 this.parentClass.MouseOverFlag=false; this.parentClass.clearTimeOut(); this.parentClass.menuMouseOutTimer(); };
GNB.prototype.menuMouseOverTimer=function(){//經(jīng)過圖片位置遞增 var _7d=this; if(this.imageIndex>=this.iImgNum){return;} this.eventObj.scrollTop=this.imageIndex*this.iImgHeight; this.imageIndex++; this.setTimerID=setTimeout(function(){_7d.menuMouseOverTimer();},this.iOverSpeed); };
GNB.prototype.menuMouseOutTimer=function(){////經(jīng)過圖片位置遞減 var _7e=this;if(this.imageIndex<0){return;} this.eventObj.scrollTop=this.imageIndex*this.iImgHeight; this.imageIndex--; this.setTimerID=setTimeout(function(){_7e.menuMouseOutTimer();},this.iOutSpeed); };
GNB.prototype.clearTimeOut=function(){//取消定時 clearTimeout(this.setTimerID); }; // ]]> </script>
xhtml
<div class="Gnb_btn_div" id="gnb_btn_01"> <a class="Gnb_btn_img" href="#1" mce_href="#1">找朋友</a> </div>
<script type="text/javascript"> // <![CDATA[ var GNB1=new GNB(document.getElementById("gnb_btn_01"));//實例單個按鈕,當(dāng)然也可以多個 // ]]> </script>
演示
運行代碼框
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
經(jīng)典論壇討論: http://bbs.blueidea.com/thread-2811766-1-1.html
本文鏈接:http://www.95time.cn/tech/web/2007/5132.asp
出處:藍(lán)色理想
責(zé)任編輯:moby
◎進入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|