<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>tab切换</title>
<style type="text/css">
body{background: #323232; margin: 0;padding: 0; color: #000}
a{ color: #fff;font-size: 14px; text-decoration: none;}
.tabmain{width: 600px;height: 400px; margin:100px 200px; display: inline-block;
vertical-align: top;
zoom: 1;
*display: inline; margin-right: 30px;}
.tabitem{height: 40px; line-height: 40px; font-size: 0px;}
.tabitem a{
display: inline-block; vertical-align: top; zoom: 1;
*display: inline; padding: 0 30px; text-align: center;
margin-right: 10px; border-radius: 4px 4px 0 0; background: #777
}
.tabitem a.active{background: #fff;color: #000; }
.tabcontent{
width: 600px; height: 460px; background: #fff; overflow: hidden;
position: relative;}
.tabcontent .contentitem{
width: 100%;height: 100%; display: none;position: absolute;
left: 0; top: 0; background: #fff
}
.tabcontent .current{display: block}
</style>
</head>
<body>
<div class="tabmain" data-arg='{"type":"slide","index":4,"auto":true,"fun":"click"}'>
<div class="tabitem">
<a href="javascript:;" class="active">新闻</a>
<a href="javascript:;">娱乐</a>
<a href="javascript:;">游戏</a>
<a href="javascript:;">工作</a>
</div>
<div class="tabcontent">
<div class="contentitem current" style="background: red">新闻内容</div>
<div class="contentitem" style="background:yellow">娱乐内容</div>
<div class="contentitem" style="background:pink">游戏内容</div>
<div class="contentitem" style="background:purple">工作内容</div>
</div>
</div>
?
<div class="tabmain">
<div class="tabitem">
<a href="javascript:;" class="active">新闻</a>
<a href="javascript:;">娱乐</a>
<a href="javascript:;">游戏</a>
<a href="javascript:;">工作</a>
</div>
<div class="tabcontent">
<div class="contentitem current">新闻内容</div>
<div class="contentitem">娱乐内容</div>
<div class="contentitem">游戏内容</div>
<div class="contentitem">工作内容</div>
</div>
</div>
<script type="text/javascript" src="/wskin/js/jquery.js"></script>
<script type="text/javascript" src="/wskin/js/tab.js"></script>
<script type="text/javascript">
$(function(){
$(".tabmain").xstab();
})
</script>
</body>
</html>
;(function($){
var Tab=function(el){
var mytab=this;
this.el=el;
this.config={
"type":"default",
"index":0,
"auto":false,
"fun":"mouseover",
};
?
$.extend(this.config,this.getConfig());
?
el.find(">.tabitem a").on(this.config.fun,function(){
mytab.myswitch($(this).index())
})
?
if(this.config.index>1){
mytab.myswitch(this.config.index-1);
}
?
if(this.config.auto){
var timer="",nowindex=0;
if(this.config.index>1){
nowindex=this.config.index+1;
}
timer=mytab.autoPlay(nowindex);
this.el.hover(function(){
window.clearInterval(timer)
},function(){
nowindex=$(this).find(">.tabitem a.active").index();
timer=mytab.autoPlay(nowindex+1)
})
}
}
?
Tab.prototype={
autoPlay:function(index){
var _this_=this,mylen=this.el.find(">.tabitem a").length;
return window.setInterval(function(){
if(index>=mylen){
index=0;
}
_this_.myswitch(index)
index+=1;
},3000)
},
?
getConfig:function(){
var args=this.el.data('arg');
var mylen=this.el.find(">.tabitem a").length
if(args && args.fun!="click"){
args.fun="mouseover";
}
if(args){
if(!isNaN(parseInt(args.index)) && parseInt(args.index)<=mylen){
args.index=parseInt(args.index);
}else{
args.index=0;
}
}
return args;
},
myswitch:function(index){
this.el.find(">.tabitem a:eq("+index+")").addClass('active')
.siblings().removeClass('active');
var _this_=this.el.find(">div.tabcontent > div.contentitem:eq("+index+")");
if(this.config['type']=="fade"){
_this_.stop(true,true).fadeIn().siblings().fadeOut();
}else if(this.config['type']=="slide"){
_this_.stop(true,true).slideDown().siblings().slideUp();
}else{
_this_.stop(true,true).addClass("current").siblings()
.removeClass("current");
}
}
}
Tab.init=function(els){
var _this_=this;
els.each(function(){
new _this_($(this))
})
};
$.fn.extend({
xstab:function(){
this.each(function(){
new Tab($(this));
})
}
});
window.Tab=Tab;
})(jQuery);