【JavaScript】实现网页中的选项卡

一、简易选项卡

以下是实现一个简单选项卡的代码。代码中有注释。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>实现简易选项卡</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      ul {
        /* 布局方式变为弹性盒模型 */
        display: flex;
        list-style: none;
      }
      li {
        height: 50px;
        line-height: 50px;
        text-align: center;
        flex: 1;
      }
      .active {
        color: red;
        /* 设置底部边框 */
        border-bottom: 1px solid red;
      }
    </style>
  </head>
  <body>
    <ul>
      <!-- 选项卡1一开始就有下划线 -->
      <li class="active" id="item1">1</li>
      <li id="item2">2</li>
    </ul>
    <script>
      // 点击第一个选项卡时,将点击效果添加到自身,并从第二个选项卡中删除点击效果
      item1.onclick = function () {
        item1.classList.add("active");
        item2.classList.remove("active");
      };
      // 点击第二个选项卡时,将点击效果添加到自身,并从第一个选项卡中删除点击效果
      item2.onclick = function () {
        item1.classList.remove("active");
        item2.classList.add("active");
      };
    </script>
  </body>
</html>

运行代码,点击第一个选项卡
在这里插入图片描述
点击第二个选项卡
在这里插入图片描述

二、完整选项卡

以下是实现一个完整选项卡的代码。代码中有注释。总体而言,此代码允许选项卡式导航,单击选项卡将激活它并显示其相应的内容。先前处于活动状态的选项卡和内容将被停用。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>选项卡</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      ul {
        list-style: none;
      }
      .header {
        display: flex;
        width: 500px;
      }
      .header li {
        flex: 1;
        height: 50px;
        line-height: 50px;
        /* 垂直居中 */
        text-align: center;
        /* 边框 */
        border: 1px solid black;
      }
      .box {
        position: relative;
      }
      .box li {
        position: absolute;
        left: 0;
        top: 0;
        width: 500px;
        height: 200px;
        background-color: yellow;
        display: none;
      }
      .header .active {
        background-color: red;
      }
      .box .active {
        display: block;
      }
    </style>
  </head>
  <body>
    <ul class="header">
      <li class="active">1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
    </ul>
    <ul class="box">
      <li class="active">aaa</li>
      <li>bbb</li>
      <li>ccc</li>
      <li>ddd</li>
    </ul>
    <script>
      var oHeaderItems = document.querySelectorAll(".header li");
      var oBoxItems = document.querySelectorAll(".box li");
      for (var i = 0; i < oHeaderItems.length; i++) {
        // i循环一次就结束了,因此要构建自定义属性,跟踪所单击项目的索引
        oHeaderItems[i].dataset.index = i;
        // 定义一个名为handler的 onclick 事件处理程序函数
        oHeaderItems[i].onclick = handler;
      }
      function handler() {
        //this表示当前点击的这一个项目,该索引用于标识 oHeaderItems 和 oBoxItems 中的相应项。
        var index = this.dataset.index;
        // for 循环用于从 oHeaderItems 和 oBoxItems 中的所有项中的active
        for (var m = 0; m < oHeaderItems.length; m++) {
          oHeaderItems[m].classList.remove("active");
          oBoxItems[m].classList.remove("active");
        }
        //给当前选中的选项卡加上active
        oHeaderItems[index].classList.add("active");
        oBoxItems[index].classList.add("active");
      }
    </script>
  </body>
</html>

保存后,打开页面
在这里插入图片描述
点击选项2
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 可以使用jQuery或原生JavaScript编写多个方法选项卡代码。以下是一个使用原生JavaScript编写的示例: HTML代码: ``` <div class="tab"> <button class="tablinks" onclick="openTab(event, 'tab1')">选项卡1</button> <button class="tablinks" onclick="openTab(event, 'tab2')">选项卡2</button> <button class="tablinks" onclick="openTab(event, 'tab3')">选项卡3</button> </div> <div id="tab1" class="tabcontent"> <h3>选项卡1</h3> <p>这是选项卡1的内容。</p> </div> <div id="tab2" class="tabcontent"> <h3>选项卡2</h3> <p>这是选项卡2的内容。</p> </div> <div id="tab3" class="tabcontent"> <h3>选项卡3</h3> <p>这是选项卡3的内容。</p> </div> ``` JavaScript代码: ``` function openTab(evt, tabName) { var i, tabcontent, tablinks; tabcontent = document.getElementsByClassName("tabcontent"); for (i = 0; i < tabcontent.length; i++) { tabcontent[i].style.display = "none"; } tablinks = document.getElementsByClassName("tablinks"); for (i = 0; i < tablinks.length; i++) { tablinks[i].className = tablinks[i].className.replace(" active", ""); } document.getElementById(tabName).style.display = "block"; evt.currentTarget.className += " active"; } ``` CSS代码: ``` .tab { overflow: hidden; border: 1px solid #ccc; background-color: #f1f1f1; } .tab button { background-color: inherit; float: left; border: none; outline: none; cursor: pointer; padding: 14px 16px; transition: 0.3s; } .tab button:hover { background-color: #ddd; } .tab button.active { background-color: #ccc; } .tabcontent { display: none; padding: 6px 12px; border: 1px solid #ccc; border-top: none; } ``` ### 回答2: 选项卡网页常见的一个功能,通过点击不同的标签来切换显示不同的内容。在JavaScript,我们可以通过编写多个方法来实现选项卡功能。 首先,我们需要给每个选项卡添加一个点击事件,当用户点击标签时,会触发相应的方法。这里我们可以使用addEventListener方法来为每个选项卡绑定点击事件。 然后,我们可以编写一个名为showTab的方法来实现显示选项卡内容的功能。在showTab方法,我们可以通过获取选项卡的索引来确定哪个选项卡被点击,然后将该选项卡内容显示出来,同时隐藏其他选项卡的内容。 另外,我们还可以编写一个名为initTabs的方法来初始化选项卡。在initTabs方法,我们可以使用querySelectorAll方法来获取所有的选项卡和对应的内容。然后遍历每个选项卡,为每个选项卡添加点击事件,同时将初始状态的选项卡内容隐藏起来。 最后,我们需要在页面加载完成后调用initTabs方法,以初始化选项卡。 下面是一个简单的示例代码: ```javascript // 显示选项卡内容 function showTab(index) { var tabs = document.querySelectorAll('.tab'); var contents = document.querySelectorAll('.content'); // 隐藏所有选项卡内容 for (var i = 0; i < contents.length; i++) { contents[i].style.display = 'none'; } // 显示当前选项卡内容 contents[index].style.display = 'block'; } // 初始化选项卡 function initTabs() { var tabs = document.querySelectorAll('.tab'); // 为每个选项卡添加点击事件 for (var i = 0; i < tabs.length; i++) { (function(index) { tabs[index].addEventListener('click', function() { showTab(index); }); })(i); } // 隐藏初始状态的选项卡内容 var contents = document.querySelectorAll('.content'); for (var i = 1; i < contents.length; i++) { contents[i].style.display = 'none'; } } // 页面加载完成后初始化选项卡 window.addEventListener('load', function() { initTabs(); }); ``` 以上是使用JavaScript编写多个方法实现选项卡功能的示例代码。 ### 回答3: JavaScript编写多个方法选项卡代码可以使用以下步骤: 1. 首先,创建一个HTML结构来组织选项卡内容。例如,可以使用`<ul>`和`<li>`来创建选项卡标签,使用`<div>`来创建选项卡内容。 2. 在JavaScript,通过获取HTML元素来选择选项卡标签和内容。可以使用`document.querySelector()`或`document.querySelectorAll()`来获取元素。 3. 给选项卡标签添加事件监听器,当用户点击标签时,触发相应的事件处理程序。可以使用`addEventListener()`方法来添加事件监听器。 4. 在事件处理程序,切换选项卡内容的显示。可以通过为选项卡标签和内容添加类名,然后使用CSS样式来控制显示或隐藏。 以下是一个示例代码: HTML代码: ```html <ul id="tabs"> <li class="tab">选项卡1</li> <li class="tab">选项卡2</li> <li class="tab">选项卡3</li> </ul> <div id="tab-content"> <div class="content">选项卡1的内容</div> <div class="content">选项卡2的内容</div> <div class="content">选项卡3的内容</div> </div> ``` JavaScript代码: ```javascript // 获取选项卡标签和内容 const tabs = document.querySelectorAll('.tab'); const contents = document.querySelectorAll('.content'); // 为选项卡标签添加事件监听器 tabs.forEach((tab, index) => { tab.addEventListener('click', () => { // 切换选项卡的激活状态 tabs.forEach((tab) => tab.classList.remove('active')); tab.classList.add('active'); // 切换选项卡内容的显示 contents.forEach((content) => content.classList.remove('active')); contents[index].classList.add('active'); }); }); ``` 上述代码,`querySelectorAll()`方法用于获取选项卡标签和内容的HTML元素。`forEach()`方法用于遍历选项卡标签,并为每个标签添加点击事件监听器。当用户点击标签时,通过切换类名来实现选项卡的切换显示。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会举重的薯片

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值