zoukankan      html  css  js  c++  java
  • css+js 选项卡操作

    <!--<!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>中国站长天空-网页特效-导航菜单-多种流行样式的选项卡菜单</title>
    <meta http-equiv="content-type" content="text/html;charset=gb2312">
    <!--把下面代码加到<head>与</head>之间
    <style type="text/css">
    * { margin:0; padding:0; border:0; list-style:none; }
    body { background:#fff; padding:20px; font:1em Verdana, Geneva, sans-serif; background:#eee; }
    .main { 668px; margin:0 auto; background:#fff; padding:10px; }
    .main h1 { font-size:16px; text-align:center; }
    .main h2 { font:normal 12px/26px Georgia, Verdana; color:#999; text-align:center; height:26px; margin:6px 0; background:#eee; }
    .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; font-size:12px; font-weight:bold; border-bottom:1px solid #dedede; background:#f1f1f1; }
    .tip pre { padding:10px; font:12px Verdana, Geneva, sans-serif; }
    .tip2 { font-size:12px; color:red; margin-top:16px; }
    /*=========mF_tab--========*/
    .mF_tab { 426px; height:90px; margin-left:16px; }
    .mF_tab .btn { position:absolute; top:0; left:0; z-index:2; }
    .mF_tab .btn li { float:left; 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; }
    .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 { 150px; background:#1EB2EF; }
    .qqTab .middle { 236px; background:#D4F2FD; }
    .qqTab .right { 150px; background:#CE4982; }
    </style>
    <script type="text/javascript">
    /*开始引入myFocus库*/
    var myFocus={
    	//myFocus JavaScript Library v1.0.2 beta
    	//Design By Koen @ 2010.9.21
    	//http://hi.baidu.com/koen_li
    	$: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;'+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;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{'+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)+' />':'')))+'<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焦点图基本库代码结束
     * 下面是各款基于myFocus库制作的焦点图风格皮肤,可自行按需选择
     * myFocus焦点图库及皮肤可自由使用,保留作者相关信息即可,谢谢支持!^^
     */
    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=''+par.width+'px;height:'+par.height+'px;float:left;';
    		par.height=par.height=='auto'?swt.offsetHeight:par.height;
    		wrap.style.cssText=''+par.width+'px;height:'+par.height+'px;';
    		box.style.cssText=''+(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));
    	}
    })
    //嵌套tag先设置
    var tabWrap=function(){myFocus.setting({
    	style:'mF_tab',
    	id:'tabWrap',
    	trigger:'mouseover',
    	type:'slide',
    	auto:false,
    	time:2,
    	600,
    	height:361
    	});
    }
    var tabInner1=function(){myFocus.setting({
    	style:'mF_tab',
    	id:'tabInner1',
    	trigger:'mouseover',
    	type:'slide',
    	auto:false,
    	time:2,
    	500,
    	height:261
    	});
    }
    var tabInner2=function(){myFocus.setting({
    	style:'mF_tab',
    	id:'tabInner2',
    	trigger:'mouseover',
    	type:'slide',
    	auto:true,
    	time:2,
    	400,
    	height:61
    	});
    }
    if(!+[1,]){tabInner2();tabInner1();tabWrap();}
    else{tabWrap();tabInner1();tabInner2();}
    //嵌套tag设置结束,接着是其他非嵌套tag设置
    myFocus.setting({style:'mF_tab',id:'qqTab',trigger:'mouseover',type:'slide',auto:true,time:2,600,height:106});myFocus.setting({style:'mF_tab',id:'qqTabAuto',trigger:'mouseover',type:'fade',auto:false,time:2,600,height:'auto'});myFocus.setting({style:'mF_tab',id:'myFocus1',trigger:'mouseover',type:'none',auto:false,time:2,400,height:61});myFocus.setting({style:'mF_tab',id:'myFocus2',trigger:'mouseover',type:'slide',auto:false,time:2,400,height:61});myFocus.setting({style:'mF_tab',id:'myFocus3',trigger:'mouseover',type:'fade',auto:false,time:2,400,height:61});myFocus.setting({style:'mF_tab',id:'myFocus4',trigger:'mouseover',type:'slide',auto:true,time:2,400,height:61});
    </script>
    </head>
    <body>
    <!--把下面代码加到<body>与</body>之间
    <div class="main">
    	<h1>myFocus-tab v1.2 demo</h1>
    	<h2>Author:koen Date:2010.9.21 Blog:hi.baidu.com/koen_li</h2>
    	<div class="box">
    		<h4>type:'none'</h4>
    		<div id="myFocus1">
    			<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>
    	</div>
    	<div class="box">
    		<h4>type:'slide'</h4>
    		<div id="myFocus2">
    			<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>
    	</div>
    		<div class="box">
    		<h4>type:'fade'</h4>
    		<div id="myFocus3">
    			<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>
    	</div>
    	<div class="box">
    		<h4>type:'slide',auto:true</h4>
    		<div id="myFocus4">
    			<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>
    	</div>
    	<div class="box">
    		<h4>支持无限嵌套</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>
    	<div class="box">
    		<h4>支持高度自适应设置height:'auto'</h4>
    		<!--为了修补ie关于计算auto值的小误差,建议提前加class
    		<div id="qqTabAuto" class="mF_tab">
    			<div class="loading"><span>请稍候...</span></div>
    			<!--载入画面
    			<ul class="btn">
    				<!--标题
    				<li>朋友</li>
    				<li>兄弟</li>
    				<li>亲人</li>
    				<li>情人</li>
    			</ul>
    			<ul class="cont">
    				<!--内容
    				<li><p>朋友朋友朋友<br/>朋友朋友朋友<br/>朋友朋友朋友<br/>朋友朋友朋友<br/>朋友朋友朋友<br/>朋友朋友朋友<br/>朋友朋友朋友<br/></p></li>
    				<li><p>兄弟兄弟兄弟</p></li>
    				<li><p>亲人亲人亲人</p></li>
    				<li><p>情人情人情人</p></li>
    			</ul>
    		</div>
    	</div>
    	<div class="box qqTab">
    		<h4>仿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>
    </body>
    </html>
    -->
    
  • 相关阅读:
    js简直了,连大小都不能直接比,还变量提升,这个是挖了多少坑啊,故意的把,,,,写起来又不简单,运行起来又不是很稳,很迷啊
    bootstrap 强制左移
    图片轮播/无缝滚动的原理
    jQuery放大镜的原理
    下拉列表的两种实现方式
    Html css图片文本对齐问题
    一键换肤原理
    setInterval与clearInterval用法
    jQuery课堂测验
    Css画圣诞树
  • 原文地址:https://www.cnblogs.com/kevin2013/p/1929483.html
Copyright © 2011-2022 走看看