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

一、需要掌握的知识

  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.运行截图


总结

多敲代码,多敲代码

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值