JavaScript实现选项卡功能(面向过程与面向对象)

yizhihongxing

JavasScript实现选项卡功能有两种常用的方法,一种是面向过程的方式,另一种是面向对象的方式。下面我将详细讲解这两种方法的实现步骤和代码示例:

面向过程的实现方式

实现步骤

  1. 获取选项卡的容器和对应选项卡所显示内容的容器
  2. 遍历选项卡容器中的选项卡,为每个选项卡绑定点击事件处理函数
  3. 在点击事件处理函数中,移除容器中的所有选项卡选中状态,并将当前点击的选项卡设置为选中状态
  4. 同时,也移除内容容器中所有选项卡内容的显示状态,并将当前点击的选项卡对应的内容设置为显示状态

示例代码

<div class="tabs-container">
  <div class="tab active">选项卡1</div>
  <div class="tab">选项卡2</div>
  <div class="tab">选项卡3</div>
</div>
<div class="tab-contents">
  <div class="tab-content active">选项卡1的内容</div>
  <div class="tab-content">选项卡2的内容</div>
  <div class="tab-content">选项卡3的内容</div>
</div>

<script>
const tabsContainer = document.querySelector('.tabs-container');
const tabContents = document.querySelector('.tab-contents');
const tabs = tabsContainer.children;
const contents = tabContents.children;

for (let i = 0; i < tabs.length; i++) {
  tabs[i].addEventListener('click', function() {
    for (let j = 0; j < tabs.length; j++) {
      tabs[j].classList.remove('active');
      contents[j].classList.remove('active');
    }
    tabs[i].classList.add('active');
    contents[i].classList.add('active');
  });
}
</script>

面向对象的实现方式

实现步骤

  1. 创建一个选项卡类,包含选项卡元素和对应的内容元素
  2. 为选项卡类添加切换选项卡和对应内容的方法
  3. 创建多个选项卡实例
  4. 调用实例中的切换选项卡和对应内容的方法

示例代码

<div class="tabs-container">
  <div class="tab active">选项卡1</div>
  <div class="tab">选项卡2</div>
  <div class="tab">选项卡3</div>
</div>
<div class="tab-contents">
  <div class="tab-content active">选项卡1的内容</div>
  <div class="tab-content">选项卡2的内容</div>
  <div class="tab-content">选项卡3的内容</div>
</div>

<script>
class Tab {
  constructor(tab, content) {
    this.tab = tab;
    this.content = content;
    this.tab.addEventListener('click', this.toggle.bind(this));
  }

  toggle() {
    const tabs = this.tab.parentElement.children;
    const contents = this.content.parentElement.children;
    for (let i = 0; i < tabs.length; i++) {
      tabs[i].classList.remove('active');
      contents[i].classList.remove('active');
    }
    this.tab.classList.add('active');
    this.content.classList.add('active');
  }
}

const tabs = document.querySelectorAll('.tabs-container .tab');
const contents = document.querySelectorAll('.tab-contents .tab-content');
const tabInstances = [];

for (let i = 0; i < tabs.length; i++) {
  tabInstances.push(new Tab(tabs[i], contents[i]));
}
</script>

以上就是JavaScript实现选项卡功能的完整攻略,通过这种方式可以实现多个选项卡的动态切换。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript实现选项卡功能(面向过程与面向对象) - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JavaScript 中创建私有成员

    创建私有成员在 JavaScript 中是非常常见和重要的需求。可以利用 JavaScript 中的作用域和闭包机制来实现。 在JavaScript中可以通过函数的声明来创建一个私有作用域,在函数中声明的变量和函数都是内部私有的,从而实现私有成员。 具体实现过程如下: 创建一个外部函数,内部定义需要私有的成员。 function myObject() { /…

    JavaScript 2023年6月10日
    00
  • JavaScript中的事件处理程序

    事件处理程序是JavaScript语言中非常重要的一部分,它能够为页面添加交互性,让用户与网页发生互动。下面针对JavaScript中的事件处理程序,提供完整的攻略: 事件处理程序概述 在JavaScript中,事件一般指用户在页面上所作的操作,比如鼠标点击、键盘按键等。可以使用事件处理程序来响应这些事件。事件处理程序是一个函数,用于处理事件中的逻辑。一般情…

    JavaScript 2023年5月27日
    00
  • javascript日期计算实例分析

    当我们构建一个网页或者web应用时,经常需要处理日期的计算。在JavaScript中,我们可以通过Date对象来实现日期的相关操作。 下面是一些具体的示例说明: 示例1:计算两个日期之间的天数 假设我们有两个日期,一个起始日期和一个结束日期。我们需要计算这两个日期之间的天数。可以使用以下代码: // 定义两个日期 let startDate = new Da…

    JavaScript 2023年5月27日
    00
  • javascript实现客户端兼容各浏览器创建csv并下载的方法

    在JavaScript中,可以通过Blob对象和URL.createObjectURL()方法来生成CSV文件,并通过a标签的download属性实现文件的下载。下面是实现客户端兼容各浏览器创建CSV并下载的完整攻略: 准备工作 在代码中创建用户需要下载的CSV内容数据 var data = [ [‘姓名’, ‘年龄’, ‘性别’], [‘张三’, ’18’…

    JavaScript 2023年5月27日
    00
  • JavaScript String.replace函数参数实例说明

    JavaScript中的String.replace()函数通常用于替换文本内容,其参数包括要替换的内容、替换的新内容和可选的标志属性。 下面是一个示例代码,说明replace()函数的基本用法: let str = "Hello World!"; let newStr = str.replace("World", &…

    JavaScript 2023年5月28日
    00
  • javascript 特性检测并非浏览器检测

    JavaScript特性检测是一种技术,用于检测一个网站或应用程序是否支持所需的特定JavaScript特性。与浏览器检测不同,它测试一个特定的功能是否可用,而浏览器检测则简单地表明用户使用的浏览器。 下面是进行JavaScript特性检测的攻略: 步骤 1.判断所需功能是否可用: 首先,确定您需要的功能是否可用。这通常涉及询问JavaScript环境的功能…

    JavaScript 2023年6月11日
    00
  • js实现截取某个字符串前面的内容

    让我来详细讲解如何使用JavaScript实现截取某个字符串前面的内容。下面是具体步骤: 1. 使用indexOf()获取关键字的位置 在JavaScript中,我们可以使用indexOf()函数来获取字符串中某个关键字的位置,该函数会返回第一个匹配到的关键字的索引值,如果没有匹配到关键字则返回-1。我们可以利用这个函数来获取关键字在原字符串中的位置,从而确…

    JavaScript 2023年5月28日
    00
  • 详解JS正则replace的使用方法

    详解JS正则replace的使用方法 什么是正则表达式 正则表达式是一种模式匹配的工具,可以用来检查一个字符串是否符合某种模式。在编程中,正则表达式可以被用于搜索、替换和验证。 replace方法 replace方法是JavaScript中字符串对象的一个方法,可以在一个字符串中替换指定的内容,并返回替换后的新字符串。其语法如下: str.replace(r…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部