JavaScript에서 tab 탭 구현(여러 가지 방법)
첫 번째: 교체를 통해 디스플레이: none과 디스플레이: Block
html:
<div id="content">
<div id="tag">
<input class="active" type="button" value="a" />
<input type="button" value="b" />
<input type="button" value="c" />
</div>
<div id="zoom">
<div style="display:block;">aaa</div>
<div>bbb</div>
<div>ccc</div>
</div>
</div>
css:
<style type="text/css">
#content input{ background:white;}
#content .active{ background:yellow;}
#content{
height:223px;
width:202px;
border:1px solid green;
}
#zoom{
height:200px;
width:200px;
border:1px solid red;
overflow:hidden;
}
#content #zoom div{
width:200px;
height:200px;
background:#ccc;
display:none;
}
</style>
js:
function show(){
var btns=document.getElementById("tag").getElementsByTagName("input");
var divs=document.getElementById("zoom").getElementsByTagName("div");
var btnslen=btns.length;
var divslen=divs.length;
for(var i=0;i<btnslen;i++){ //
btns[i].index=i; //
btns[i].onclick=function (){
//
for(var j=0;j<divslen;j++){ // div
btns[j].className='';
divs[j].style.display='none';
}
this.className='active';
divs[this.index].style.display='block';
}
}
}
window.onload=function (){
show();
}
두 번째:z-index를 바꾸는 방식으로 층 간의 관계를 바꾸는 거잖아요.
html:
<div id="content">
<div id="tag">
<input class="active" type="button" value="a" />
<input type="button" value="b" />
<input type="button" value="c" />
</div>
<div id="zoom">
<div style="display:block; z-index:100;">aaa</div>
<div>bbb</div>
<div>ccc</div>
</div>
</div>
css:
#content input{ background:white;}
#content .active{ background:yellow;}
#content{
height:223px;
width:202px;
border:1px solid green;
position:relative;
}
#zoom{
height:200px;
width:200px;
border:1px solid red;
}
#content #zoom div{
width:200px;
height:200px;
background:#ccc;
position:absolute;
}
js:
// , display:none;
function showByZIndex(){
// z-index
var btns=document.getElementById("tag").getElementsByTagName("input");
var divs=document.getElementById("zoom").getElementsByTagName("div");
var btnsLen=btns.length;
var divsLen=divs.length;
for(var i=0;i<btnsLen;i++){
btns[i].index=i;
btns[i].onclick=function(){
for(var j=divsLen-1;j>=0;j--){
// buts
btns[j].className='';
// div z-index
divs[j].style.zIndex=j;
}
this.className='active';
divs[this.index].style.zIndex=99; //
}
}
}
window.onload=function (){
showByZIndex();
}
마지막으로 우리는 한 가지 방식을 최적화하여 대상을 대상으로 하는 방식으로 실현합시다!
최종 최적화 코드:
// , , “ ” ,
function oopStyle(id){
//
// , content ; tag zoom
// var btns=document.getElementById("tag").getElementsByTagName("input");
// var divs=document.getElementById("zoom").getElementsByTagName("div");
var _this=this;// ,new
this.btns=document.getElementById(id).getElementsByTagName("div")[0].getElementsByTagName("input");
this.divs=document.getElementById(id).getElementsByTagName("div")[1].getElementsByTagName("div");
for(var i=0;i<this.btns.length;i++){
this.btns[i].index=i;
this.btns[i].onclick=function (){
var xx=this; // this ;
_this.fn(this);
// ,
// (btns,divs)
}
}
}
oopStyle.prototype.fn=function(obj){
// div , btn , new
//div btn
// this new
for(var j=0;j<this.btns.length;j++){
this.btns[j].className='';
this.divs[j].style.display='none';
}
obj.className='active';
this.divs[obj.index].style.display='block';
}
window.onload=function (){
new oopStyle("content");
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.