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>

仅供参考。。。。。。 

运行结果如下

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

【调试小贴士】 

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章