前端基础–javascript实现tab栏切换小案例

  • Post author:
  • Post category:java


一、需要掌握的知识

  1. html无序列表的知识
  2. css一些简单样式的设置
  3. display???
  4. cursor???
  5. 怎么获取元素???querySelectorAll
  6. for循环
  7. 设置自定义属性???setAttribute???
  8. 排他思想



二、思路



1.阐述

第一步当然是html骨架,css样式渲染,这些就一笔带过了,主要js的一些理解,第二步,写js语法,先是获取元素,然后遍历能够给每一个按钮添加事件,然后就是用排他思想了,把其他点击过的按钮颜色给消除掉,要不然都是pink,最后再把点击那个按钮的颜色赋予pink,然后就是给每一个标题按钮设置自定义属性,为什么呢?因为要让点击的那个按钮和下面的文本框一对一对应,设置的时候要放在点击事件外面,得到自定义属性的时候放在里面,千万不要忘了,要不然都是bug,然后还是用排他思想,把其他模块的文本隐藏,只有点击那个模块标题按钮的时候,对应的文本才显示,把块元素赋予给那给

代码如下(示例):

    <style>
        *{
            padding: 0;
            margin: 0;
        }
        li{
            list-style: none;
        }
        .tab{
            width: 600px;
            height: 50px;
            line-height: 50px;
            border: 1px solid black;
            background-color: yellow;
        }
        .tab li{
            float: left;
            padding: 0 20px;
            cursor: pointer;
        }
        .pink{
            background-color: pink;
        }
        .item{
            display: none;
        }
    </style>
</head>
<body>
    <div class="tab">
        <ul>
            <li class="pink">精选</li>
            <li>电器区域</li>
            <li>水果区域</li>
            <li>文具区域</li>
        </ul>
    </div>
    <div class="tabitems">
        <div class="item" style="display:block;">打折活动</div>
        <div class="item">笔记本电脑</div>
        <div class="item">苹果梨子</div>
        <div class="item">钢笔水彩笔</div>
    </div>
    <script>
        var tab=document.querySelector('.tab');
        var lis=tab.querySelectorAll('li');
        var items=document.querySelectorAll('.item');
        for(var i=0;i<lis.length;i++){
            lis[i].setAttribute('index',i);
            lis[i].onclick=function(){
                for(var i=0;i<lis.length;i++){
                    lis[i].className='';
                }
                this.className='pink';
                var index=this.getAttribute('index');
                for(var i=0;i<items.length;i++){
                    items[i].style.display='none';
                }
                items[index].style.display='block';
            }
        }
    </script>



2.运行截图




总结

多敲代码,多敲代码

每天发现一个不足之处,每天学习一个知识点,进步还会远吗



版权声明:本文为weixin_51983027原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。