webAPI

tab栏切换

2019-05-10  本文已影响0人  椋椋夜色

<!DOCTYPE html>
<html lang="zh-CN">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title> tab栏切换 </title>

<!--
    li标签要想有上面那根红线,那么加一个类叫active就可以了

    下面的商品div要显示,就给这个div加一个selected类就可以了
-->

<style type="text/css">
    * {
        margin: 0;
        padding: 0;
    }

    ul {
        list-style: none;
    }

    .wrapper {
        width: 1000px;
        height: 475px;
        margin: 0 auto;
        margin-top: 100px;
    }

    .tab {
        border: 1px solid #ddd;
        border-bottom: 0;
        height: 36px;
        width: 320px;
    }

    .tab li {
        position: relative;
        float: left;
        width: 80px;
        height: 34px;
        line-height: 34px;
        text-align: center;
        cursor: pointer;
        border-top: 4px solid #fff;
    }

    .tab span {
        position: absolute;
        right: 0;
        top: 10px;
        background: #ddd;
        width: 1px;
        height: 14px;
        overflow: hidden;
    }

    .products {
        width: 1002px;
        border: 1px solid #ddd;
        height: 476px;
    }

    .products .main {
        float: left;
        display: none;
    }

    .products .main.selected {
        display: block;
    }

    .tab li.active {
        border-color: red;
        border-bottom: 0;
    }
</style>

</head>

<body>

<div class="wrapper">

    <ul class="tab">
        <li class="tab-item active">国际大牌<span>◆</span></li>
        <li class="tab-item">国妆名牌<span>◆</span></li>
        <li class="tab-item">清洁用品<span>◆</span></li>
        <li class="tab-item">男士精品</li>
    </ul>


    <div class="products">
        <div class="main selected">
            <a href="###"><img src="../images/guojidapai.jpg" alt="" /></a>
        </div>
        <div class="main">
            <a href="###"><img src="../images/guozhuangmingpin.jpg" alt="" /></a>
        </div>
        <div class="main">
            <a href="###"><img src="../images/qingjieyongpin.jpg" alt="" /></a>
        </div>
        <div class="main">
            <a href="###"><img src="../images/nanshijingpin.jpg" alt="" /></a>
        </div>
    </div>

</div>

<!-- 
    步骤:
        1.找到所有li
        2.给所有li加鼠标移入事件
            2.1 先排他,去掉所有的active
            2.2 谁移入,让谁加一个active这个类
            2.3 想要在点击事件里拿到自己的下标
                2.3.1 在循环的时候把它的下标存到行内index属性
                2.3.2 就能拿到自己下标

        3.找到所有div
        4.根据上面拿到的li的下标,找到对应的div,把div加一个类selected(记得先排他,可以跟li一起排他)

 -->

<script>
    // 找到所有div
    var divList = document.getElementsByClassName('main');
    // 找到所有的li
    var liList = document.getElementsByTagName('li');
    // 遍历所有的li,给它们加鼠标移入事件
    for (var i = 0; i < liList.length; i++) {
        //每个li的下标都存到它们自身里面
        liList[i].setAttribute('index', i);

        // 鼠标移入
        liList[i].onmouseover = function () {

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

                // 先让大家恢复默认
                liList[j].className = "tab-item";
                divList[j].className = "main";
            }

            // 谁移入就给谁加一个类active
            this.className += " active";
            //拿到移入的li的下标
            var index = this.getAttribute('index');

            // 你是下标几,我就找到下标几的div
            divList[index].className += " selected";
        }
    }
</script>

</body>

</html>

上一篇下一篇

猜你喜欢

热点阅读