JavaScript高手之路:选项卡的封装

本文介绍了如何使用JavaScript实现选项卡功能,包括通过构造函数和字面量方式封装选项卡组件。内容涉及页面布局、事件绑定、类的成员变量和方法,特别是`switchTab()`函数用于切换选项卡的逻辑。示例代码详细展示了如何创建和初始化选项卡,并提供了两种不同的封装方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

选项卡我相信开发过前端的同学都不陌生,有时候我们也把它叫做页签,在网站开发中我们经常把它作为导航栏来使用。Bootstrap和EasyUI都已经封装好了选项卡组件,但是今天我们还是想自己动手来实现自己的选项卡,它的大致效果如图:
在这里插入图片描述
本页面中有4个按钮和4个div,当用户选中按钮时,被选中的按钮背景色变黄,对应的红色背景div内容则显示出来,其他3个div则被隐藏,那么我们的页面代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>选项卡</title>
    <style>
        #box div {
            height: 300px;
            width: 300px;
            display: none;
            background-color: red;
        }

        .active {
            background-color: yellow;
        }
    </style>
</head>
<body>
    <div id="box">
        <input type="button" value="按钮1" />
        <input type="button" value=&
封装了一个选项卡,不过已经不像选项卡了-_-!!! 现稍微说明下吧,如果不明白的话,旁边有几个例子可能说明起来更清楚些 obj.bind = ["a1","td","b1","div"]; 绑定id="a1"下的td标签为菜单,绑定id="b1"下的div标签为内容,简单么? td标签的数量和div标签的数量必须相同 (若不需要显示内容,只显示菜单话,可以这个在td标签上加<td skip="true">) 如果id="a1"下的td标签有嵌套表格,这样的话,就不是所有的td都是菜单,这时候需要用下nesting obj.nesting = [false,true,"",""]; 当标签tag有嵌套时,需要用到这个 比如选项卡内容是放在div容器里,而本身这个内容里也有div标签,这时就需要用到 菜单嵌套为false,内容嵌套为true,且会自动判断出内容标签,多数时候这样就可以了 判断方法为,认定getElementsByTagName后第一个标签为内容第一项,其他的就用这个第一项的深度来判断 但有些情况下,这样还是不行 我用后面2个参数做id来指定菜单或者内容的第一项nesting = [false,true,"","q2"]; 这样就肯定不会错了(不明白的话看下例子就简单多了) obj.index = 0; 默认显示第几个选项卡,序号从0开始 obj.style = ["c1","c2","c3"] 菜单加载的样式的className: 菜单未选中的className是c1 菜单选中的className是c2 菜单onmouseover的className是c3 obj.overStyle = false; 选项卡是否有onmouseover, onmouseout变换样式事件[非激活选项卡内容],对应的样式为style[2] obj.overChange = false; 选项卡内容是否用onmouseover, onmouseout直接激活 obj.menu = false; 选项卡是菜单类型 obj.auto = [false, 1000]; 选项卡是否自动播放,播放速度(毫秒) obj.creat(); 开始生成选项卡,需要onclick触发事件的话,可以obj.creat(函数名) 所有的都会触发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值