美文网首页
面向对象的选项卡案例

面向对象的选项卡案例

作者: 圆滚滚大煤球 | 来源:发表于2021-12-22 11:03 被阅读0次
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .box {
            width: 600px;
            height: 300px;
            border: 5px #000 solid;
            margin: 50px auto;
        }
        ul , ol , li {
            list-style: none;
        }
        .box > ul {
            width: 100%;
            height: 40px;
            overflow: hidden;
        }
        .box > ul > li {
            width: 200px;
            float: left;
            height: 100%;
            line-height: 40px;
            font-size: 30px;
            text-align: center;
            background: orange;
            cursor: pointer;
        }
        .box > ul > li.active {
            background-color: purple;
        }
        .box > ol {
            position: relative;
            width: 100%;
            height: 260px;
        }
        .box > ol > li {
            width: 100%;
            height: 100%;
            position: absolute;
            left: 0;
            top: 0;
            line-height: 260px;
            text-align: center;
            font-size: 100px;
            background-color: skyblue;
            display: none;
        }
        .box > ol > li.active {
            display: block;
        }
    </style>
</head>
<body>
    <div class="box">
        <ul>
            <li class="active">1</li>
            <li>2</li>
            <li>3</li>
        </ul>
    <ol>
        <li class="active">1</li>
        <li>2</li>
        <li>3</li>
    </ol>
    </div>

    <script>
        // 面向对象的选项卡

        // 1、抽象内容
        // + 属性 btns
        // + 属性 tabs
        // + 方法 能实现点击事件切换的方法

        // 2、书写构造函数
        // + 接受一个参数:范围元素

        // 3、方法里面实现选项卡
        // + 
        function Tabs(ele) {
            // 拿到出现选项卡的范围
            this.ele = document.querySelector(ele)
            // 找到btns
            this.btns = this.ele.querySelectorAll('ul>li')
            // 找到tabs
            this.tabs = this.ele.querySelectorAll('ol>li')
            console.log(this.tabs);

            Tabs.prototype.change = function() {
                // 这个位置的this是当前实例
                var that = this;

                // 操作的是当前实例的btns tabs
                // this 就是当前实例,我们就要给this.btns的每一个添加点击事件
                this.btns.forEach(function (item,index) {
                    item.addEventListener('click',function(){
                        // this:你所点击的这个li
                        // that:实例对象
                        // console.log(that);
                        that.btns.forEach(function(t, i){
                            that.btns[i].className = '';
                            that.tabs[i].className = '';
                        })
                        // 给对应的添加类名
                        item.className = 'active';
                        that.tabs[index].className = 'active';
                    })
                });
            }
        }

        let t1 = new Tabs('.box');
        t1.change()
    </script>
</body>
</html>

相关文章

  • 面向对象三

    面向对象中级 面向对象实例:选项卡 改写面向过程的选项卡image.png 改写面向对象程序的四要素 this 什...

  • 面向对象的选项卡案例

  • 17 - Tab选项卡-面向对象

    用面向对象实现Tab选项卡 面向对象是一种思想,从面向过程到面向对象的转变需要一个过程 HTML结构 Css样式 ...

  • 0723

    01面向对象和面向过程的思想 02面向对象的思想的生活案例 03面向对象好处 04大象装进冰箱的代码案例 05定义...

  • python 面向对象封装案例 II

    面向对象封装案例 II 目标 士兵突击案例 身份运算符 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一...

  • 面向对象上

    面向对象上 两种思想:面向对象 面向过程 案例:面向过程:强调行为,函数最小单位,考虑怎么做 面向对象三大特征:封...

  • python 面向对象封装案例

    面向对象封装案例 目标 封装 小明爱跑步 存放家具 01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 ...

  • 14.Python对象封装

    面向对象封装案例 目标 封装 小明爱跑步 存放家具 01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 ...

  • Python面向对象设计

    一、面向对象思想 1.面向对象思想设计 基于哲学观点:万物皆对象举例说明:案例一:我想吃大盘鸡面向过程 ...

  • 10-Python对象

    一、面向对象思想 1.面向对象思想设计 基于哲学观点:万物皆对象 举例说明: 案例一:我想吃大盘鸡 面向过程 ...

网友评论

      本文标题:面向对象的选项卡案例

      本文链接:https://www.haomeiwen.com/subject/fnrqqrtx.html