js学习之基础篇综合练习 自动选项卡(自己实现版)

写的不好啊,自己没看讲解,先自己实现了一版。

总的原理就是 控制 三个div 的显示 || 不显示,以及三个相应按钮的颜色 普通色 || 高亮色。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
        *{
            margin: 0px;
            padding: 0px;
            list-style: none;
        }

        #clickGroup,#autoGroup{
            margin: 10px;
            padding: 10px;
        }

        h1{
            color:tomato;
        }

        #clickGroup>div,#autoGroup>div{
            width: 200px;
            height: 200px;
            background-color: pink;   
            border: 1px salmon solid; 
            /* div都不显示 */
            display: none;
        }

        /* 初始时候,只显示第一个div */
        #clickGroup>div:first-of-type,#autoGroup>div:first-of-type{
            display: block;
        }

        /* button:first-of-type{
            background-color: pink;   
        } */
    </style>
</head>
<body>
    <h1>点击事件组</h1>
    <div id="clickGroup">
        
        <button id="btn1">选项1</button>
        <button id="btn2">选项2</button>
        <button id="btn3">选项3</button>
        <div id="div1">DIV1</div>
        <div id="div2">DIV22</div>
        <div id="div3">DIV333</div>
    </div>
    
    <h1>自动播放组</h1>
    <div id="autoGroup">

        <button id="btn1">选项1</button>
        <button id="btn2">选项2</button>
        <button id="btn3">选项3</button>
        <div id="div1">DIV1</div>
        <div id="div2">DIV22</div>
        <div id="div3">DIV333</div>
    </div>


    <script type="text/javascript">
       
        common_start///
        function show(divArray,buttonArray,i){
            // 【4】隐藏所有的div
            for(let j = 0 ;j<divArray.length;j++){
                    divArray[j].style.display='none';
                }
                
            // 【5】去掉所有button的背景颜色
            for(let k = 0;k<buttonArray.length;k++){
                buttonArray[k].style.backgroundColor = '';
            }

            // 【6】显示需要显示的div
            // 高亮所选button
            divArray[i].style.display='block';
            buttonArray[i].style.backgroundColor = 'pink';
        }
        common_end///


        点击事件组_start///
        // 【1】选中所有的div
        let divArrayC = [...document.body.querySelectorAll('#clickGroup>div')];

        // 【2】绑定button的事件
        // 根据button的点击事件 控制 div的隐藏与显示
        let buttonArrayC = [...document.body.querySelectorAll('#clickGroup>button')];

        // console.log(buttonArray[0].style.backgroundColor);
        buttonArrayC[0].style.backgroundColor = 'pink';

        for(let i = 0;i<buttonArrayC.length;i++){
            buttonArrayC[i]['onclick']=()=>{
                // 【3】测试一下有没有绑定成功
                // alert(i);

                show(divArrayC,buttonArrayC,i);
            }
        }
        点击事件组_end///
        
        
        自动播放组_start///
        // 【1】选中所有的div
        let divArrayA = [...document.body.querySelectorAll('#autoGroup>div')];

        // 【2】绑定button的事件
        // 根据button的点击事件 控制 div的隐藏与显示
        let buttonArrayA = [...document.body.querySelectorAll('#autoGroup>button')];

        buttonArrayA[0].style.backgroundColor = 'pink';
        let index = 0;
        setInterval(() => {
            // for(let index=0;index<3;index++){
                show(divArrayA,buttonArrayA,index);
                index++;
                if(index==3){
                    index=0;
                }
            // }
        }, 1000);
        // setInterval;
        自动播放组_end///

    </script>
</body>
</html>

仅供参考。。。。。。 

运行结果如下

顺便 安利一个 调试的小贴士

【调试小贴士】 

 红框的那个地方 就是你选中那个 元素,你要是想找到这个元素 边距 宽高啊 什么的,变蓝的地方,你 方向键盘的 上 || 下 就可以变大 变小的 看效果。找到最适合你的!!!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值