HTML系列:多种方式实现选项卡

本文探讨了使用HTML、CSS3和JavaScript实现选项卡的不同方法,通过实例展示了如何创建交互式的选项卡组件,并呈现了最终的运行效果。
摘要由CSDN通过智能技术生成

多种方式实现选项卡

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>tab选项卡</title>
    <style>
        * {
   
            margin:0 auto;
            padding:0 auto;
        }
         .tabBox {
   
             margin: 20px auto;
             width:500px;
         }
         .tabBox ul {
   
             position:relative;
             top:1px;
             right:40px;
             /* 相对于之前的位置向下移动1px,使边框重合 */
         }
         .tabBox ul li {
   
            display: inline-block;
            /* 同一行,块标签 */
            margin-right:10px;
            padding:0 10px;
            line-height: 33px;
            border:1px solid #AAA;
            cursor: pointer;
         }
         .tabBox ul li
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来为您解答。首先需要一个 HTML 结构,如下: ```html <div class="tab"> <ul class="tab-nav"> <li class="active">选项卡1</li> </ul> <div class="tab-content"> <div class="tab-pane active">选项卡1的内容</div> </div> </div> ``` 然后,我们使用原生 JS 实现以下效果: 1. 实现选项卡动态添加 ```js var tabNav = document.querySelector('.tab-nav'); var tabContent = document.querySelector('.tab-content'); // 添加选项卡 function addTab(title, content) { var index = tabNav.children.length; // 选项卡索引 var li = document.createElement('li'); li.innerText = title; li.setAttribute('data-index', index); // 设置索引 tabNav.appendChild(li); var div = document.createElement('div'); div.classList.add('tab-pane'); div.innerText = content; div.setAttribute('data-index', index); // 设置索引 tabContent.appendChild(div); } addTab('选项卡2', '选项卡2的内容'); ``` 2. 实现选项卡切换 ```js // 切换选项卡 function switchTab(index) { var activeLi = tabNav.querySelector('.active'); var activeDiv = tabContent.querySelector('.active'); if (activeLi) activeLi.classList.remove('active'); if (activeDiv) activeDiv.classList.remove('active'); var li = tabNav.querySelector(`li[data-index="${index}"]`); var div = tabContent.querySelector(`div[data-index="${index}"]`); if (li) li.classList.add('active'); if (div) div.classList.add('active'); } // 点击切换选项卡 tabNav.addEventListener('click', function(e) { var li = e.target.closest('li'); if (li) { var index = li.getAttribute('data-index'); switchTab(index); } }); ``` 3. 实现选项卡删除 ```js // 删除选项卡 function removeTab(index) { var li = tabNav.querySelector(`li[data-index="${index}"]`); var div = tabContent.querySelector(`div[data-index="${index}"]`); if (li) tabNav.removeChild(li); if (div) tabContent.removeChild(div); } // 双击删除选项卡 tabNav.addEventListener('dblclick', function(e) { var li = e.target.closest('li'); if (li) { var index = li.getAttribute('data-index'); removeTab(index); } }); ``` 以上就是使用原生 JS 实现选项卡动态添加、切换和删除的代码。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值