分享一个超酷javascript全屏幻灯导航(fullscreen slide navigation)
这篇文章介绍了如何使用幻灯方式来进行全屏幕页面导航,包括了16个幻灯,4个一行,一共4行。并且通过了CSS3箭头添加了动画导航效果。而且提供一个迷你的导航条能够帮助用户记录访问过的幻灯页面。希望大家喜欢!
Javascript代码- varnavi={
- // variables
- aPages:[],
- aLinks:[],
- tween:{},
- oParent:null,
- oPages:null,
- bRunning:null,
- sTargPage:null,
- sCurPage:null,
- bHash:null,
- sOldH:null,
- bUpdateH:true,
- // initialization
- init:function(aParams){
- this.oPages=document.getElementById(aParams.pages_id);
- this.oParent=document.getElementById(aParams.parent_id);
- varaAEls=this.oParent.getElementsByTagName('a');
- vari=0;varp=null;
- while(p=aAEls[i++]){
- if(p.className&&p.className.indexOf('go')>=0){
- varsHref=p.href.split('#')[1];
- varoDst=document.getElementById(sHref);
- if(oDst){
- // fill-in pages array
- this.aPages[sHref]={
- oObj:oDst,
- iXPos:-oDst.offsetLeft,
- iYPos:-oDst.offsetTop
- };
- // fill-in links array
- this.aLinks.push({a:p,oObj:oDst});
- p.onclick=function(){
- navi.goto(this.href.split('#')[1],aParams.duration);
- returnfalse;
- }
- }
- }
- }
- this.resize();
- if('onhashchange'inwindow){
- if(location.hash!==''&&location.hash!=='#'){
- this.sOldH=location.hash.substring(1);
- this.goto(this.sOldH,-1);
- }else
- this.goto('page1',-1);
- this.bHash=true;
- window.onhashchange=function(){
- if(location.hash.substring(1)!==navi.sOldH){
- navi.sOldH=location.hash.substring(1);
- if(navi.sOldH==''){
- navi.bUpdateH=false;
- }
- navi.goto(navi.sOldH,aParams.duration);
- }
- returnfalse;
- }
- }
- },
- // on resize
- resize:function(){
- variCurW=this.oParent.offsetWidth;// current sizes
- variCurH=this.oParent.offsetHeight;
- for(variinthis.aPages){// for each page
- varoPage=this.aPages[i];
- variNewX=Math.round(oPage.oObj.offsetLeft*iCurW/oPage.oObj.offsetWidth);// new sizes
- variNewY=Math.round(oPage.oObj.offsetTop*iCurH/oPage.oObj.offsetHeight);
- oPage.oObj.style.left=iNewX+'px';
- oPage.oObj.style.top=iNewY+'px';
- oPage.oObj.style.width=iCurW+'px';
- oPage.oObj.style.height=iCurH+'px';
- oPage.iXPos=-iNewX;
- oPage.iYPos=-iNewY;
- if(this.sCurPage)
- this.goto(this.sCurPage,-1);
- }
- },
- goto:function(sHref,iDur){
- this.tween.iStart=newDate()*1;
- this.tween.iDur=iDur;
- this.tween.fromX=this.oPages.offsetLeft;
- this.tween.fromY=this.oPages.offsetTop;
- this.tween.iXPos=this.aPages[sHref].iXPos-this.tween.fromX;
- this.tween.iYPos=this.aPages[sHref].iYPos-this.tween.fromY;
- this.sTargPage=sHref;
- if(!this.bRunning)
- this.bRunning=window.setInterval(this.animate,24);
- },
- animate:function(){
- variCurTime=(newDate()*1)-navi.tween.iStart;
- if(iCurTime<navi.tween.iDur){
- variCur=Math.cos(Math.PI*(iCurTime/navi.tween.iDur))-1;
- navi.oPages.style.left=Math.round(-navi.tween.iXPos*.5*iCur+navi.tween.fromX)+'px';
- navi.oPages.style.top=Math.round(-navi.tween.iYPos*.5*iCur+navi.tween.fromY)+'px';
- }else{
- navi.oPages.style.left=Math.round(navi.tween.fromX+navi.tween.iXPos)+'px';
- navi.oPages.style.top=Math.round(navi.tween.fromY+navi.tween.iYPos)+'px';
- window.clearInterval(navi.bRunning);
- navi.bRunning=false;
- navi.sCurPage=navi.sTargPage;
- vari=0;varp=null;
- while(p=navi.aLinks[i++]){
- if(p.oObj.id==navi.sCurPage){
- if(p.a.className.indexOf('visited')>=0){
- p.a.className=p.a.className.replace('visited','active');
- }elsep.a.className+=' active';
- p.visited=true;
- }elseif(p.visited){
- p.a.className=p.a.className.replace('active','visited');
- }
- }
- if(navi.bHash){
- if(navi.bUpdateH){
- navi.sOldH=navi.sCurPage;
- window.location.hash=navi.sCurPage;
- }
- navi.bUpdateH=true;
- }
- }
- }
- }
- window.onload=function(){// page onload
- navi.init({parent_id:'container',pages_id:'pages',duration:1000});
- }
- window.onkeydown=function(event){// keyboard alerts
- switch(event.keyCode){
- case37:// Left key
- variPage=navi.sCurPage.substring(4)*1;
- iPage--;
- if(iPage<1){
- iPage=1;
- }
- navi.goto('page'+iPage,1000);
- break;
- case39:// Right key
- variPage=navi.sCurPage.substring(4)*1;
- iPage++;
- if(iPage>16){
- iPage=16;
- }
- navi.goto('page'+iPage,1000);
- break;
- }
- };
- <!DOCTYPEhtml>
- <htmllang="en">
- <head>
- <metacharset="utf-8"/>
- <title>Fullscreen Javascript. Slide navigation|ScriptTutorials</title>
- <linkhref="css/layout.css"type="text/css"rel="stylesheet">
- <scriptsrc="js/main.js"></script>
- </head>
- <body>
- <divclass="container"id="container">
- <divid="pages">
- <divid="page1">
- <ahref="#page2"class="go right"></a>
- <ahref="#page5"class="go bottom"></a>
- </div>
- <divid="page2">
- <ahref="#page1"class="go left"></a>
- <ahref="#page3"class="go right"></a>
- <ahref="#page6"class="go bottom"></a>
- </div>
- <divid="page3">
- <ahref="#page2"class="go left"></a>
- <ahref="#page4"class="go right"></a>
- <ahref="#page7"class="go bottom"></a>
- </div>
- <divid="page4">
- <ahref="#page3"class="go left"></a>
- <ahref="#page8"class="go bottom"></a>
- </div>
- <divid="page5">
- <ahref="#page1"class="go top"></a>
- <ahref="#page6"class="go right"></a>
- <ahref="#page9"class="go bottom"></a>
- </div>
- <divid="page6">
- <ahref="#page5"class="go left"></a>
- <ahref="#page2"class="go top"></a>
- <ahref="#page7"class="go right"></a>
- <ahref="#page10"class="go bottom"></a>
- </div>
- <divid="page7">
- <ahref="#page6"class="go left"></a>
- <ahref="#page3"class="go top"></a>
- <ahref="#page8"class="go right"></a>
- <ahref="#page11"class="go bottom"></a>
- </div>
- <divid="page8">
- <ahref="#page7"class="go left"></a>
- <ahref="#page4"class="go top"></a>
- <ahref="#page12"class="go bottom"></a>
- </div>
- <divid="page9">
- <ahref="#page5"class="go top"></a>
- <ahref="#page10"class="go right"></a>
- <ahref="#page13"class="go bottom"></a>
- </div>
- <divid="page10">
- <ahref="#page9"class="go left"></a>
- <ahref="#page6"class="go top"></a>
- <ahref="#page11"class="go right"></a>
- <ahref="#page14"class="go bottom"></a>
- </div>
- <divid="page11">
- <ahref="#page10"class="go left"></a>
- <ahref="#page7"class="go top"></a>
- <ahref="#page12"class="go right"></a>
- <ahref="#page15"class="go bottom"></a>
- </div>
- <divid="page12">
- <ahref="#page11"class="go left"></a>
- <ahref="#page8"class="go top"></a>
- <ahref="#page16"class="go bottom"></a>
- </div>
- <divid="page13">
- <ahref="#page9"class="go top"></a>
- <ahref="#page14"class="go right"></a>
- </div>
- <divid="page14">
- <ahref="#page13"class="go left"></a>
- <ahref="#page10"class="go top"></a>
- <ahref="#page15"class="go right"></a>
- </div>
- <divid="page15">
- <ahref="#page14"class="go left"></a>
- <ahref="#page11"class="go top"></a>
- <ahref="#page16"class="go right"></a>
- </div>
- <divid="page16">
- <ahref="#page15"class="go left"></a>
- <ahref="#page12"class="go top"></a>
- </div>
- </div>
- <divid="nav">
- <div>Fullscreen Javascript. Slide navigation</div>
- <divstyle="width:130px">
- <ahref="#page1"class="go"></a>
- <ahref="#page2"class="go"></a>
- <ahref="#page3"class="go"></a>
- <ahref="#page4"class="go"></a>
- <ahref="#page5"class="go"></a>
- <ahref="#page6"class="go"></a>
- <ahref="#page7"class="go"></a>
- <ahref="#page8"class="go"></a>
- <ahref="#page9"class="go"></a>
- <ahref="#page10"class="go"></a>
- <ahref="#page11"class="go"></a>
- <ahref="#page12"class="go"></a>
- <ahref="#page13"class="go"></a>
- <ahref="#page14"class="go"></a>
- <ahref="#page15"class="go"></a>
- <ahref="#page16"class="go"></a>
- </div>
- </div>
- </div>
- </body>
- </html>
相关阅读:
- Javascript 闭包——摘自网络 (ForTechnology, 2011-8-04)
- js 原型链 (ForTechnology, 2011-8-05)
- javascript中的函数 (ForTechnology, 2011-8-05)
- JavaScript中Array (ForTechnology, 2011-8-05)
- javascript Object分析 (ForTechnology, 2011-8-05)
- javascript this详解 (ForTechnology, 2011-8-05)
- javascript this (ForTechnology, 2011-8-05)
- Javascript 操作Word和Excel的实现代码<链接> (bluemirror, 2011-12-08)
- JavaScript Table排序 (bluemirror, 2011-12-08)
- JavaScript Table排序 (bluemirror, 2012-1-19)
导入论坛 引用链接 收藏 分享给好友 推荐到圈子 管理 举报
TAG: javascript 导航

