为了账号安全,请及时绑定邮箱和手机立即绑定

琢磨出的一个写法

<style type="text/css">

      * {

        padding: 0;

        margin: 0;

    }


    .box>div {

        width: 300px;

        height: 300px;

        border: 1px solid black;

        display: none;

    }


    .box {

        position: relative;

    }


    .box div:nth-child(2) {

        position: absolute;

        top: 0;

        background: green;

    }


    .box div:nth-child(3) {

        position: absolute;

        top: 0;

        background: salmon;

    }


    .show {

        display: block !important;

        background: tomato;

    }


    #list {

        width: 300px;

        height: 50px;

        border: 1px solid black;

        /* margin: 0 auto; */

        text-align: center;

    }


    #list ul {

        list-style-type: none;

    }


    #list ul li {

        float: left;

        margin: 0px 16px;

        cursor: pointer;

        height: 50px;

        text-align: center;

        border-right: 1px solid black;

    }


    .active {

        background: #ccc;

    }

       

       

    </style>

   

 

</head>

<body>

 <div id="list">

        <ul>

            <li class=a ctive>房产</li>

            <li>家具</li>

            <li>二手房</li>

        </ul>

    </div>

    <div class="box">

        <div class="show">1111</div>

        <div>22</div>

        <div>333</div>

    </div>



 

</body>

<script>

    function Tabs() {

    this. tli = document.querySelectorAll('#list>ul>li')

    this. tdiv = document.querySelectorAll('.box>div')

}

Tabs.prototype.fn = function () {

    var that = this

    for (var i = 0; i < this.tli.length; i++) {

        this.tli[i].index = i;

        this .tli[i].onclick = function () {

            // console.log(this)

            that.myclick(this);//

            

        }

    }

}

Tabs.prototype.myclick = function (that) {

    for (var j = 0; j < this.tdiv.length; j++) {

        this.tdiv[j].setAttribute('class', '')

        this.tli[j].setAttribute('class', '')

    }

    that.setAttribute('class', 'active')

    this.tdiv[that.index].setAttribute('class', 'show')



}

var tabs = new Tabs()

tabs.fn()

</script>


正在回答

1 回答

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>实践题 - 选项卡</title>

    <style type="text/css">

     /* CSS样式制作 */  

     *{

margin:0;

padding:0;

}

body{

background-color:#DCDCDC;

}

#box{

margin:20px;

width:340px;

height:220px;

background-color:#fafafa;

padding:10px 20px;

box-sizing:border-box;

}

button{

width:60px;

height:30px;

background-color:#fafafa;

outline:none;

border:1px solid #DCDCDC;

cursor:pointer;

position:relative;

top:3px;

border-bottom:none;

left:5px;

box-sizing:border-box;

}

#text{

list-style-type:none;

width:260px;

height:160px;

border:1px solid lightblue;

border-top:2px solid #8B4513;

box-sizing:border-box;

position:relative;

z-index:0;

}

li{

position:absolute;

left:5px;

top:10px;

line-height:26px;

font-size:12px;

display:none;

}

.active{

display:block;

}

.zIdx{

z-index:1;

border-top:2px solid #8B4513;

}   

       

    </style>

    <script type="text/javascript">

         

    // JS实现选项卡切换

    window.onload=function(){

     var text = document.getElementById('text');

var lis = document.getElementsByTagName('li');

var btns = document.getElementsByTagName('button');

var box = document.getElementById('box');

// 遍历

function each(array,fn){

for(var i=0;i<array.length;i++){

fn(i,array[i]);

}

}

each(btns,function(index,ele){

ele.onclick = function(){

classMethod.addClass(index,ele)

}

})

var classMethod = {

clearClass:function (className,parentNode){

var pattern = new RegExp('(^|\\s+)' + className + '($|\\s+)');

var allNodes = parentNode.getElementsByTagName('*');

parentNode = parentNode || document;

for(var i = 0;i<allNodes.length;i++){

if(pattern.test(allNodes[i].className)){

allNodes[i].className ="";

}

}

},

addClass:function (index,ele){

if(lis[index].className){

return;

}else if(!lis[index].className){

classMethod.clearClass("active",text);

classMethod.clearClass('zIdx',box);

lis[index].className = "active";

ele.className ="zIdx";

}

}

}    

    }

    

    </script>

 

</head>

<body>

<!-- HTML页面布局 -->

<section id="box">

<button type="button" name="btn-li" class="zIdx">房产</button>

<button type="button" name="btn-li">家居</button>

<button type="button" name="btn-li">二手房</button>

<ul id="text">

<li class="active">

275万购昌平邻铁三居总价20万买一居<br/>

200万内购五环三居140万安家东三环<br/>

北京首现零首付楼盘53万购东5环50平<br/>

     京楼盘直降5000中信府公园楼王现房<br/>

</li>

<li>

40平出租屋大改造 美少女的混搭小窝<br/>

      经典清新简欧爱家 90平老房焕发新生<br/>

      新中式的酷色温情 66平撞色活泼家居<br/>

      瓷砖就像选好老婆 卫生间烟道的设计<br/>

      </li>

<li>

通州豪华3居260万 二环稀缺2居250w甩<br/>

      西3环通透2居290万 130万2居限量抢购<br/>

      黄城根小学学区仅260万 121平70万抛!<br/>

      独家别墅280万 苏州桥2居优惠价248万<br/>

      </li>

</ul>

</section>


 

</body>

</html>


0 回复 有任何疑惑可以回复我~
#1

逆鳞oz

这写的什么东西?
2018-10-12 回复 有任何疑惑可以回复我~
#2

丛从绿草 回复 逆鳞oz

你复制过去试试,
2018-10-16 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

琢磨出的一个写法

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信