zoukankan      html  css  js  c++  java
  • P12 简单选项卡功能

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>简单选项卡</title>
        <style>
            #div1 .active {
                background: yellow;
            }
    
            #div1 div {
                width: 200px;
                height: 200px;
                background: rgb(130, 231, 116);
                border: 2px solid black;
            }
        </style>
        <script>
            window.onload = function () {
                var oDiv1 = document.getElementById('div1');
                var oBtns = oDiv1.getElementsByTagName('input');
                var allDivs = oDiv1.getElementsByTagName('div');
                for (let i = 0; i < oBtns.length; i++) {
                    /* 
                    其实这一行没啥用, 这里给按钮添加的下标是为了给下面的this.index用的, 等价于当前循环变量的值 
                    添加了这一行之后, 是想使用this.index获取当前按钮的自定义属性index的值, 其实就是循环变量i的值
                    */
                    oBtns[i].index = i;// 这里的意思就是给按钮添加一个自定义的属性index, 它的值就是i
                    // 给所有的按钮添加点击事件
                    oBtns[i].onclick = function () {
                        // 因为有可能上面的四个之前已经有了高亮的背景颜色, 表示显示class
                        // 当我们点击别的按钮的时候, 应该将所有的按钮的class = '', 然后再给当前被点击的按钮的背景添加背景
                        for (let j = 0; j < oBtns.length; j++) {
                            oBtns[j].className = '';
                            allDivs[j].style.display = 'none';
                        }
    
                        // 这里的this, 是js中为我们提供, 当前发生事件的按钮对象
                        this.className = 'active';
                        // allDivs[this.index].style.display = 'block';
                        allDivs[i].style.display = 'block';
                        // 接下来就是给所有的div的display设置为none, 然后让当前的按钮对应的div显示
                        /* 
                        我们遇到的问题有这些:
                        1. 首先我怎么确认显示哪个div, 应该是通过数组下标的形式来确认, 刚好按钮和div是一一对应的关系
                         */
    
    
                    }
    
                }
            }
        </script>
    </head>
    
    <body>
        <div id="div1">
            <input class="active" type="button" value="教育"> <!-- 初始显示的选项卡 -->
            <input type="button" value="培训">
            <input type="button" value="招生">
            <input type="button" value="出国">
            <div style="display: block;">1111</div> <!-- 这里的是选项卡中初始显示的div -->
            <div style="display: none;">2222</div>
            <div style="display: none;">3333</div>
            <div style="display: none;">4444</div>
        </div>
    </body>
    
    </html>
  • 相关阅读:
    模板之st表
    codevs 1163 访问艺术馆
    noip提高组2000 乘积最大
    [HNOI2008]越狱(luogu P3197)
    [ZJOI2009]假期的宿舍(luogu P2055)
    noip普及组2013 车站分级(luogu P1983)
    [HNOI2010]平面图判定
    sql中对于case when...then...else...end的写法和理解
    java中,去除空白的方法
    关于debug时的一些操作
  • 原文地址:https://www.cnblogs.com/runmoxin/p/13284017.html
Copyright © 2011-2022 走看看