本文實例講述了JS基於myFocus庫實現各種功能的tab選項卡切換效果。分享給大家供大家參考。具體如下:
這裡介紹使用myFocus-tab實現各種功能的選項卡切換,有的是帶有動畫效果的,各款基於myFocus庫製作的焦點圖風格皮膚,可自行按需選擇,myFocus焦點圖庫及皮膚可自由使用,保留作者相關資訊即可,謝謝支持! ^^
運作效果截圖如下:
線上示範網址如下:
http://demo.jb51.net/js/2015/js-myfocus-plug-tab-cha-nav-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>myFocus-tab 各种功能的选项卡切换</title> <style type="text/css"> * { margin:0; padding:0; border:0; list-style:none; } body { background:#fff; padding:20px; font:1em Verdana, Geneva, sans-serif; } .box { float:left; margin-right:20px; } .box h4 { color:#c00; line-height:30px; font-size:12px; } .tip { border:1px solid #dedede; margin-top:20px; } .tip p { height:30px; line-height:30px; padding-left:16px; background:#f1f1f1; } .tip pre { background:##AFF8AB; } .tip2 { font-size:12px; color:#888; margin-top:16px; } .mF_tab { width:426px; height:90px; margin-left:16px; } .mF_tab .btn { position:absolute; top:0; left:0; z-index:2; } .mF_tab .btn li { float:left; width:80px; height:26px; line-height:26px; text-align:center; margin-right:2px; border:1px solid #dedede; border-bottom:0; cursor:pointer; background:#f1f1f1; } .mF_tab .btn li.current { height:27px; background:#fff; } .mF_tab .cont { position:absolute; top:27px; left:0; border:1px solid #dedede; overflow:hidden; } .mF_tab .cont .swt { position:absolute; left:0; top:0; } .mF_tab .cont .swt li p { padding:16px; } </style> <script type="text/javascript"> var myFocus={ $:function(id){return document.getElementById(id);}, $$:function(tag,obj){return (typeof obj=='object'?obj:this.$(obj)).getElementsByTagName(tag);}, $$_:function(tag,obj){ var arr=[],n=0,a=obj.getElementsByTagName(tag); for(var i=0;i<a.length;i++){ arr.push(a[i]); if(a[i].getElementsByTagName(tag).length){n=a[i].getElementsByTagName(tag).length} i=i+n;n=0; } return arr; }, $li:function(obj,n){return this.$$_('li',this.$$_('ul',obj)[n])}, linear:function(t,b,c,d){return c*t/d + b;}, easeIn:function(t,b,c,d){return c*(t/=d)*t*t*t + b;}, easeOut:function(t,b,c,d){return -c*((t=t/d-1)*t*t*t - 1) + b;}, easeInOut:function(t,b,c,d){return ((t/=d/2) < 1)?(c/2*t*t*t*t + b):(-c/2*((t-=2)*t*t*t - 2) + b);}, style:function(obj,style){return obj['offset'+style.replace(/^(.)/,new Function('return arguments[1].toUpperCase()'))];}, opa:function(obj,v){ if(v!=undefined) {v=v>100?100:(v<0?0:v); obj.style.filter = "alpha(opacity=" + v + ")"; obj.style.opacity = (v / 100);} else return (!+[1,])?((obj.filters.alpha)?obj.filters.alpha.opacity:100):((obj.style.opacity)?obj.style.opacity*100:100); }, animate:function(obj,prop,val,spd,type,fn){ var opa=prop=='opacity'?true:false; if(opa&&obj.style.display=='none'){obj.style.display='';this.opa(obj,0);} var t=0,b=opa?this.opa(obj):parseInt(this.style(obj,prop)),c=val-b,d=spd||50,st=type||'easeOut',m=c>0?'ceil':'floor'; if(obj[prop+'Timer']) clearInterval(obj[prop+'Timer']); obj[prop+'Timer']=setInterval(function(){ if(opa&&t<d){myFocus.opa(obj,Math[m](myFocus[st](++t,b,c,d)));} else if(!opa&&t<d){obj.style[prop]=Math[m](myFocus[st](++t,b,c,d))+'px';} else {if(opa&&val==0){obj.style.display='none'}clearInterval(obj[prop+'Timer']);fn&&fn.call(obj);} },10);return this; }, fadeIn:function(obj,speed,fn){this.animate(obj,'opacity',100,speed==undefined?20:speed,'linear',fn);return this;}, fadeOut:function(obj,speed,fn){this.animate(obj,'opacity',0,speed==undefined?20:speed,'linear',fn);return this;}, slide:function(obj,params,speed,easing,fn){for(var p in params) this.animate(obj,p,params[p],speed,easing,fn);return this;}, stop:function(obj){ var animate=['left','right','top','bottom','width','height','opacity']; for(var i=0;i<animate.length;i++) if(obj[animate[i]+'Timer']) clearInterval(obj[animate[i]+'Timer']); return this; }, initCSS:function(p){ var css=[],oStyle = document.createElement('style');oStyle.type='text/css'; if(p.width){css.push('.'+p.style+' *{margin:0;padding:0;border:0;list-style:none;}.'+p.style+'{position:relative;width:'+p.width+'px;height:'+p.height+'px;overflow:hidden;font:12px/1.5 Verdana,Geneva,sans-serif;background:#fff;}.'+p.style+' .loading{position:absolute;z-index:9999;width:100%;height:100%;color:#666;text-align:center;padding-top:'+0.3*p.height+'px;background:#fff}.'+p.style+' .txt li,.'+p.style+' .txt li span,.'+p.style+' .txt-bg{width:'+p.width+'px;height:'+p.txtHeight+'px;line-height:'+p.txtHeight+'px;overflow:hidden;}')} if(oStyle.styleSheet){oStyle.styleSheet.cssText=css.join('');} else {oStyle.innerHTML=css.join('');} var oHead = this.$$('head',document)[0];oHead.insertBefore(oStyle,oHead.firstChild); }, setting:function(par){ if(window.attachEvent){(function(){try{myFocus.$(par.id).className=par.style;myFocus.initCSS(par);}catch(e){setTimeout(arguments.callee,0);}})();window.attachEvent('onload',function(){myFocus[par.style](par)});} else{document.addEventListener("DOMContentLoaded",function(){myFocus.$(par.id).className=par.style;myFocus.initCSS(par);},false);window.addEventListener('load',function(){myFocus[par.style](par)},false);} }, addList:function(obj,cla){ var s=[],n=this.$li(obj,0).length,num=cla.length; for(var j=0;j<num;j++){ s.push('<ul class='+cla[j]+'>'); for(var i=0;i<n;i++){s.push('<li>'+(cla[j]=='num'?('<a>'+(i+1)+'</a>'):(cla[j]=='txt'?this.$li(obj,0)[i].innerHTML.replace(/\>(.|\n|\r)*?(\<\/a\>)/i,'>'+(this.$$('img',obj)[i]?this.$$('img',obj)[i].alt:'')+'</a>'):(cla[j]=='thumb'?'<img src='+(this.$$('img',obj)[i].getAttribute("thumb")||this.$$('img',obj)[i].src)+' / alt="JS基於myFocus庫實作各種功能的tab選項卡切換效果_javascript技巧" >':'')))+'<span></span></li>')}; s.push('</ul>'); }; obj.innerHTML+=s.join(''); }, switchMF:function(fn1,fn2){ return "box.removeChild(this.$$('div',box)[0]);var run=function(idx){("+fn1+")();if (index == n - 1) index = -1;var next = idx != undefined ? idx: index + 1;("+fn2+")();index=next;};run(index);if(par.auto!==false) var auto=setInterval(function(){run()},t);box.onmouseover=function(){if(auto) clearInterval(auto);};box.onmouseout=function(){if(auto) auto=setInterval(function(){run()},t);}" }, bind:function(arrStr,type,delay){ return "for (var j=0;j<n;j++){"+arrStr+"[j].index=j;if("+type+"=='click'){"+arrStr+"[j].onmouseover=function(){if(this.className!='current') this.className='hover'};"+arrStr+"[j].onmouseout=function(){if(this.className=='hover') this.className=''};"+arrStr+"[j].onclick=function(){if(this.index!=index) run(this.index)};}else if("+type+"=='mouseover'){"+arrStr+"[j].onmouseover=function(){var self=this;if("+delay+"==0){if(!self.className) run(self.index)}else "+arrStr+".d=setTimeout(function(){if(!self.className) run(self.index)},"+(delay==undefined?100:delay)+")};"+arrStr+"[j].onmouseout=function(){clearTimeout("+arrStr+".d)};}else{alert('myFocus 不支持这样的事件 \"'+"+type+"+'\"');break;}}" }, extend:function(fnObj){for(var p in fnObj) this[p]=fnObj[p];} }; myFocus.extend({ mF_tab:function(par){ var box=this.$(par.id); this.$$('ul',box)[1].innerHTML='<li><ul class=swt>'+this.$$('ul',box)[1].innerHTML+'</ul></li>'; var btn=this.$li(box,0),wrap=this.$$('ul',box)[1],swt=this.$$('ul',box)[2],cont=this.$$_('li',swt); var index=par.index||0,n=btn.length,t=par.time*1000; swt.style.width=n*par.width+'px'; for(var i=0;i<n;i++) cont[i].style.cssText='width:'+par.width+'px;height:'+par.height+'px;float:left;'; par.height=par.height=='auto'?swt.offsetHeight:par.height; wrap.style.cssText='width:'+par.width+'px;height:'+par.height+'px;'; box.style.cssText='width:'+(par.width+2)+'px;height:'+(par.height+29)+'px;'; if(par.type=='fade'||par.type=='none'){for(var i=0;i<n;i++) cont[i].style.display='none';} eval(this.switchMF(function(){ btn[index].className=''; if(par.type=='fade'||par.type=='none') cont[index].style.display='none'; },function(){ if(par.type=='slide') myFocus.slide(swt,{left:-(next*par.width)},20,'easeInOut') if(par.type=='fade') myFocus.fadeIn(cont[next]); if(par.type=='none') cont[next].style.display=''; btn[next].className='current'; })) eval(this.bind('btn','par.trigger',par.delay)); } }) var tabWrap=function(){myFocus.setting({ style:'mF_tab', id:'tabWrap', trigger:'mouseover', type:'slide', auto:false, time:2, width:600, height:361 }); } var tabInner1=function(){myFocus.setting({ style:'mF_tab', id:'tabInner1', trigger:'mouseover', type:'slide', auto:false, time:2, width:500, height:261 }); } var tabInner2=function(){myFocus.setting({ style:'mF_tab', id:'tabInner2', trigger:'mouseover', type:'slide', auto:true, time:2, width:400, height:61 }); } if(!+[1,]){tabInner2();tabInner1();tabWrap();} else{tabWrap();tabInner1();tabInner2();} myFocus.setting({ style:'mF_tab', id:'qqTab', trigger:'mouseover', type:'slide', auto:true, time:2, width:600, height:106 }); myFocus.setting({ style:'mF_tab', id:'qqTabAuto', trigger:'mouseover', type:'fade', auto:false, time:2, width:600, height:'auto' }); </script> </head> <body> <div class="box"> <h4 id="支持无限嵌套">支持无限嵌套</h4> <div id="tabWrap"> <div class="loading"><span>请稍候...</span></div> <!--载入画面--> <ul class="btn"> <!--标题--> <li>朋友</li> <li>兄弟</li> <li>亲人</li> <li>情人</li> </ul> <ul class="cont"> <!--内容--> <li> <p>朋友朋友朋友</p> <div id="tabInner1"> <div class="loading"><span>请稍候...</span></div> <!--载入画面--> <ul class="btn"> <!--标题--> <li>朋友</li> <li>兄弟</li> <li>亲人</li> <li>情人</li> </ul> <ul class="cont"> <!--内容--> <li> <p>朋友朋友朋友</p> <div id="tabInner2"> <div class="loading"><span>请稍候...</span></div> <!--载入画面--> <ul class="btn"> <!--标题--> <li>朋友</li> <li>兄弟</li> <li>亲人</li> <li>情人</li> </ul> <ul class="cont"> <!--内容--> <li> <p>朋友朋友朋友</p> </li> <li> <p>兄弟兄弟兄弟</p> </li> <li> <p>亲人亲人亲人</p> </li> <li> <p>情人情人情人</p> </li> </ul> </div> </li> <li> <p>兄弟兄弟兄弟</p> </li> <li> <p>亲人亲人亲人</p> </li> <li> <p>情人情人情人</p> </li> </ul> </div> </li> <li> <p>兄弟兄弟兄弟</p> </li> <li> <p>亲人亲人亲人</p> </li> <li> <p>情人情人情人</p> </li> </ul> </div> </div> <style> .qqTab{margin-bottom:12px;} .qqTab .btn li { background:#A1DEFE;border-color:#36BAF0; } .qqTab .btn li.current { height:27px; background:#F9FEFF; } .qqTab .cont{border-color:#36BAF0; } .qqTab .list{float:left;overflow:hidden;text-align:center;margin:16px;margin-right:0;display:inline;} .qqTab .list ul li{list-style:circle;} .qqTab .left{width:150px;background:#1EB2EF;} .qqTab .middle{width:236px;background:#D4F2FD;} .qqTab .right{width:150px;background:#CE4982;} </style> <div class="box qqTab"> <h4 id="仿QQ今日要闻实例">仿QQ今日要闻实例</h4> <div id="qqTab"> <div class="loading"><span>请稍候...</span></div> <!--载入画面--> <ul class="btn"> <!--标题--> <li>新闻</li> <li>财经</li> <li>娱乐</li> <li>体育</li> </ul> <ul class="cont"> <!--内容--> <li> <div class="list left"> <ul> <li>新闻左列表</li> <li>新闻左列表</li> <li>新闻左列表</li> <li>新闻左列表</li> </ul> </div> <div class="list middle"> <ul> <li>新闻中列表</li> <li>新闻中列表</li> <li>新闻中列表</li> <li>新闻中列表</li> </ul> </div> <div class="list right"> <ul> <li>新闻右列表</li> <li>新闻右列表</li> <li>新闻右列表</li> <li>新闻右列表</li> </ul> </div> </li> <li> <div class="list left"> <ul> <li>财经左列表</li> <li>财经左列表</li> <li>财经左列表</li> <li>财经左列表</li> </ul> </div> <div class="list middle"> <ul> <li>财经中列表</li> <li>财经中列表</li> <li>财经中列表</li> <li>财经中列表</li> </ul> </div> <div class="list right"> <ul> <li>财经右列表</li> <li>财经右列表</li> <li>财经右列表</li> <li>财经右列表</li> </ul> </div> </li> <li> <div class="list left"> <ul> <li>娱乐左列表</li> <li>娱乐左列表</li> <li>娱乐左列表</li> <li>娱乐左列表</li> </ul> </div> <div class="list middle"> <ul> <li>娱乐中列表</li> <li>娱乐中列表</li> <li>娱乐中列表</li> <li>娱乐中列表</li> </ul> </div> <div class="list right"> <ul> <li>娱乐右列表</li> <li>娱乐右列表</li> <li>娱乐右列表</li> <li>娱乐右列表</li> </ul> </div> </li> <li> <div class="list left"> <ul> <li>体育左列表</li> <li>体育左列表</li> <li>体育左列表</li> <li>体育左列表</li> </ul> </div> <div class="list middle"> <ul> <li>体育中列表</li> <li>体育中列表</li> <li>体育中列表</li> <li>体育中列表</li> </ul> </div> <div class="list right"> <ul> <li>体育右列表</li> <li>体育右列表</li> <li>体育右列表</li> <li>体育右列表</li> </ul> </div> </li> </ul> </div> </div> <div class="box qqTab"> <h4 id="支持高度自适应-auto-设置">支持高度自适应(auto)设置</h4> <div id="qqTabAuto"> <div class="loading"><span>请稍候...</span></div> <!--载入画面--> <ul class="btn"> <!--标题--> <li>新闻</li> <li>财经</li> <li>娱乐</li> <li>体育</li> </ul> <ul class="cont"> <!--内容--> <li> <div class="list left"> <ul> <li>新闻左列表</li> <li>新闻左列表</li> <li>新闻左列表</li> <li>新闻左列表</li> </ul> </div> <div class="list middle"> <ul> <li>新闻中列表</li> <li>新闻中列表</li> <li>新闻中列表</li> <li>新闻中列表</li> <li>这是测试高度自适应</li> <li>这是测试高度自适应</li> <li>这是测试高度自适应</li> <li>这是测试高度自适应</li> </ul> </div> <div class="list right"> <ul> <li>新闻右列表</li> <li>新闻右列表</li> <li>新闻右列表</li> <li>新闻右列表</li> </ul> </div> </li> <li> <div class="list left"> <ul> <li>财经左列表</li> <li>财经左列表</li> <li>财经左列表</li> <li>财经左列表</li> </ul> </div> <div class="list middle"> <ul> <li>财经中列表</li> <li>财经中列表</li> <li>财经中列表</li> <li>财经中列表</li> </ul> </div> <div class="list right"> <ul> <li>财经右列表</li> <li>财经右列表</li> <li>财经右列表</li> <li>财经右列表</li> </ul> </div> </li> <li> <div class="list left"> <ul> <li>娱乐左列表</li> <li>娱乐左列表</li> <li>娱乐左列表</li> <li>娱乐左列表</li> </ul> </div> <div class="list middle"> <ul> <li>娱乐中列表</li> <li>娱乐中列表</li> <li>娱乐中列表</li> <li>娱乐中列表</li> </ul> </div> <div class="list right"> <ul> <li>娱乐右列表</li> <li>娱乐右列表</li> <li>娱乐右列表</li> <li>娱乐右列表</li> </ul> </div> </li> <li> <div class="list left"> <ul> <li>体育左列表</li> <li>体育左列表</li> <li>体育左列表</li> <li>体育左列表</li> </ul> </div> <div class="list middle"> <ul> <li>体育中列表</li> <li>体育中列表</li> <li>体育中列表</li> <li>体育中列表</li> </ul> </div> <div class="list right"> <ul> <li>体育右列表</li> <li>体育右列表</li> <li>体育右列表</li> <li>体育右列表</li> </ul> </div> </li> </ul> </div> </div> </body> </html>
希望本文所述對大家的JavaScript程式設計有所幫助。

如何使用JS和百度地图实现地图平移功能百度地图是一款广泛使用的地图服务平台,在Web开发中经常用于展示地理信息、定位等功能。本文将介绍如何使用JS和百度地图API实现地图平移功能,并提供具体的代码示例。一、准备工作使用百度地图API前,首先需要在百度地图开放平台(http://lbsyun.baidu.com/)上申请一个开发者账号,并创建一个应用。创建完成

如何使用JS和百度地图实现地图多边形绘制功能在现代网页开发中,地图应用已经成为常见的功能之一。而地图上绘制多边形,可以帮助我们将特定区域进行标记,方便用户进行查看和分析。本文将介绍如何使用JS和百度地图API实现地图多边形绘制功能,并提供具体的代码示例。首先,我们需要引入百度地图API。可以利用以下代码在HTML文件中导入百度地图API的JavaScript

js字符串转数组的方法:1、使用“split()”方法,可以根据指定的分隔符将字符串分割成数组元素;2、使用“Array.from()”方法,可以将可迭代对象或类数组对象转换成真正的数组;3、使用for循环遍历,将每个字符依次添加到数组中;4、使用“Array.split()”方法,通过调用“Array.prototype.forEach()”将一个字符串拆分成数组的快捷方式。

如何使用JS和百度地图实现地图热力图功能简介:随着互联网和移动设备的迅速发展,地图成为了一种普遍的应用场景。而热力图作为一种可视化的展示方式,能够帮助我们更直观地了解数据的分布情况。本文将介绍如何使用JS和百度地图API来实现地图热力图的功能,并提供具体的代码示例。准备工作:在开始之前,你需要准备以下事项:一个百度开发者账号,并创建一个应用,获取到相应的AP

js中new操作符做了:1、创建一个空对象,这个新对象将成为函数的实例;2、将新对象的原型链接到构造函数的原型对象,这样新对象就可以访问构造函数原型对象中定义的属性和方法;3、将构造函数的作用域赋给新对象,这样新对象就可以通过this关键字来引用构造函数中的属性和方法;4、执行构造函数中的代码,构造函数中的代码将用于初始化新对象的属性和方法;5、如果构造函数中没有返回等等。

这篇文章主要为大家详细介绍了js实现打字小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

php在特定情况下可以读js内部的数组。其方法是:1、在JavaScript中,创建一个包含需要传递给PHP的数组的变量;2、使用Ajax技术将该数组发送给PHP脚本。可以使用原生的JavaScript代码或者使用基于Ajax的JavaScript库如jQuery等;3、在PHP脚本中,接收传递过来的数组数据,并进行相应的处理即可。

js全称JavaScript,是一种具有函数优先的轻量级,直译式、解释型或即时编译型的高级编程语言,是一种属于网络的高级脚本语言;JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式,如函数式编程。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver Mac版
視覺化網頁開發工具