<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.on{ background: rgb(9, 224, 134);}
.box div{ width: 200px; height: 200px; border: 1px solid #666; display: none;}
.box div.active{ display: block;}
</style>
</head>
<body>
<div id="box" class="box">
<input type="button" class="on" value="aaa">
<input type="button" value="bbb">
<input type="button" value="ccc">
<div class="active">aaaa</div>
<div>bbbb</div>
<div>cccc</div>
</div>
<div id="box2" class="box">
<input type="button" class="on" value="aaa">
<input type="button" value="bbb">
<div class="active">aaaa</div>
<div>bbbb</div>
</div>
<script>
class Tab{
constructor(config){
this.config = config || {};
if(typeof this.config.el == 'undefined') return; //id必填
this.oBox = document.getElementById(this.config.el);
this.aInp = this.oBox.getElementsByTagName('input');
this.aDiv = this.oBox.getElementsByTagName('div');
this.length = this.aDiv.length;
this.n = 0;
this.init();
};
init(){
for(let i=0;i<this.length;i++){
this.aInp[i].onclick=function(){
document.title = i;
this.hide();
this.show(i);
}.bind(this);
}
};
show(index){
this.aInp[index].setAttribute('class','on');
this.aDiv[index].setAttribute('class','active');
this.n =index;
};
hide(){
for(let i=0; i<this.length;i++){
this.aInp[i].setAttribute('class','');
this.aDiv[i].setAttribute('class','');
}
};
};
class AutoTab extends Tab{
constructor(config){
super(config);
setInterval(function(){
this.next()
}.bind(this),1000);
console.log(this);
};
next(){
if(this.n >= this.length-1){
this.n = 0
}else{
this.n++ ;
}
console.log(this.n);
this.hide();
this.show(this.n);
};
};
new Tab({
el:'box'
});
new AutoTab({
el:'box2'
});
</script>
</body>
</html>