核心提示:Tab切换之面向对象实例教程!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//ENhttps://www.w3.org/TR/xhtml...
Tab切换之面向对象实例教程
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Tab切换之面向对象</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0,
user-scalable=no"/>
<script src="https://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<style>
*{margin: 0;padding: 0;}
#p1 p,#p2 p{
display: none;
width: 200px;
height: 200px;
border: 1px solid;
}
#p1 .active,#p2 .active{
color: #fff;
background: red;
}
</style>
</head>
<body>
<p id="p1">
<input class="active" type="button" value="按钮1" />
<input type="button" value="按钮2" />
<input type="button" value="按钮3" />
<p style="display:block">111</p>
<p>222</p>
<p>333</p>
</p>
<p id="p2">
<input class="active" type="button" value="按钮1" />
<input type="button" value="按钮2" />
<input type="button" value="按钮3" />
<p style="display:block">111</p>
<p>222</p>
<p>333</p>
</p>
<script type="text/javascript">
//改成面向对象、不能函数嵌套函数单独拎出来
//全局变量就是属性
//函数就是方法
//onload中创建对象
//this 指向问题 尽量指向对象
window.onload = function(){
var t1 = new Tab('p1');
t1.init();
var t2 = new Tab('p2');
t2.init();
t2.Autoplay();
};
function Tab(id){
this.oDiv1 = document.getElementById(id);
this.oInput = this.oDiv1.getElementsByTagName('input');
this.oDiv = this.oDiv1.getElementsByTagName('p');
this.iNow = 0;
}
Tab.prototype.init = function() {
var This = this;
for(var i = 0;i<this.oInput.length;i++){
this.oInput[i].index = i;
this.oInput[i].onclick = function(){
This.Change(this);
}
}
};
Tab.prototype.Change = function(obj){
for(var i = 0;i<this.oInput.length;i++){
this.oInput[i].className = '';
this.oDiv[i].style.display = 'none';
}
obj.className = 'active';
this.oDiv[obj.index].style.display = 'block';
}
Tab.prototype.Autoplay = function(){
var This = this;
setInterval(function(){
if(This.iNow == This.oInput.length-1){
This.iNow = 0;
}else{
This.iNow++;
}
for(var i = 0;i<This.oInput.length;i++){
This.oInput[i].className = '';
This.oDiv[i].style.display = 'none';
}
This.oInput[This.iNow].className = 'active';
This.oDiv[This.iNow].style.display = 'block';
},1500)
};
</script>
</body>
</html>


