tap栏制作

251 阅读1分钟

tap栏常见于大部分网页,下面是我写的简易tap栏及js效果

html代码

 <div class="top">
        <ul class="toplist">
            <li class="current">1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
        </ul>

        <div class="botton">
            <div class="item" style="display:block ;">1111111</div>
            <div class="item">22222222222</div>
            <div class="item">3333333333</div>
            <div class="item">44444444444</div>
            <div class="item">555555555555555</div>
        </div>
    </div>

css代码

 * {
            margin: 0;
            padding: 0;
        }

        .top {
            width: 1000px;
            height: 200px;
            margin: 0 auto;
        }

        .toplist {
            list-style-type: none;
            float: left;
            width: 100%;
            height: 50px;
            background-color: rgb(122, 120, 120);
            color: black;
        }

        .toplist li {
            float: left;
            height: 50px;
            width: 10%;
            text-align: center;
            line-height: 50px;
            cursor: pointer;
        }

        .current {
            background-color: orangered;
            color: #ffff;

        }

        .item {
            display: none;
        }

js代码

<script>
        //点击li变背景色,其余不变(排他思想)
        var top_list = document.querySelector('.toplist');
        var lis = top_list.querySelectorAll('li');  //获取每一个li
        var items = document.querySelectorAll('.item');
        console.log(items);
        //for循环绑定点击事件
        for (var i = 0; i < lis.length; i++) {
            //给每一个li添加自定义属性
            lis[i].setAttribute('index', i);
            lis[i].onclick = function () {
                //清除其他li的class
                for (var i = 0; i < lis.length; i++) {
                    lis[i].className = '';
                }
                this.className = 'current';
                // 下面的显示模块
                var index = this.getAttribute('index');  //获取index内容
                for (var i = 0; i < items.length; i++) {
                    items[i].style.display = '';  //排他思想,清除其余元素diplay
                }
                items[index].style.display = 'block';  //点击让相应序号里面内容显示出来
            }
        }
    </script>

结果如下:

image.png

image.png