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

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日

相关文章

  • 一个简易的js图片轮播效果

    下面是一个关于实现“一个简易的js图片轮播效果”的完整攻略: 确定需求 首先,我们需要明确实现一个简易的js图片轮播效果的需求。具体来说,它应该具有以下特点: 需要能够自动播放图片; 需要能够通过点击左右箭头手动切换图片,点击小圆点可以快速切换到相应的图片; 图片过渡效果需要流畅自然。 准备html结构 实现一个图片轮播的首要任务就是准备好html结构。我们…

    JavaScript 2023年6月11日
    00
  • JS的replace方法

    JS的replace方法是一种可以在字符串中搜索指定内容并替换的方法。下面详细讲解它的使用方法和一些示例说明,以便你更好地理解和应用它。 replace方法的语法 JS中replace方法的语法如下: str.replace(searchValue, replaceValue) 该方法接受两个参数,分别是所要匹配的字符串和替换为的字符串。 参数解释 sear…

    JavaScript 2023年6月10日
    00
  • layui表单验证select下拉框实现验证的方法

    下面是关于“layui表单验证select下拉框实现验证的方法”的详细攻略。 步骤一:引入layui表单模块 首先我们需要引入layui表单模块,因为它包含了表单验证的相关功能。我们可以将下面的代码加入到html文件中: <link rel="stylesheet" href="/layui/css/layui.css&q…

    JavaScript 2023年6月10日
    00
  • javascript编码的几个方法详细介绍

    JavaScript编码的几个方法详细介绍 作为一名前端开发人员,编写高效可靠的JavaScript贯穿了整个web开发过程,掌握JavaScript编码技巧对于开发者来说非常重要。本文将介绍在JavaScript编码时经常使用的一些方法。 1. 使用模块化 模块化是一种重要的编码方法,它将一段代码拆分成更小、更容易管理和维护的代码块,从而确保代码的可读性和…

    JavaScript 2023年5月18日
    00
  • 扩展JavaScript功能的正确方法(译文)

    首先需要解释一下什么是扩展JavaScript功能的正确方法,其实就是指通过使用第三方库或者自己编写代码模块的方式增强基本的JavaScript功能。以下是详细的攻略: 1. 了解JavaScript基础知识 在进行任何扩展功能之前,首先要掌握JavaScript的基础知识,了解它的语法、变量、函数、数据类型等基本元素,只有这样才能更好地扩展它的功能。推荐阅…

    JavaScript 2023年5月18日
    00
  • JavaScript中的闭包

    JavaScript中的闭包是一个非常重要的概念,也是比较难以理解的一个部分。在理解闭包之前,首先需要明确以下几个概念: 变量作用域(Scope),指一个变量可以被访问的区域。 函数作用域(Function scope),指函数内部定义的所有变量在函数外部都是不可访问的。 作用域链(Scope chain),指当一个函数被调用时,JavaScript引擎会去…

    JavaScript 2023年6月10日
    00
  • 让我们一起来学习一下什么是javascript的闭包

    下面就来详细讲解一下“让我们一起来学习一下什么是javascript的闭包”的攻略。 什么是闭包? 闭包其实指的是一种能够访问外部函数作用域中变量的函数,也就是说,在一个函数内部定义的函数能够访问到这个函数的作用域中的变量。同时,这个内部函数也可以在外部被引用和调用。这里可以理解为函数自身以及函数被调用时所处的上下文环境。 闭包的实现原理 在JavaScri…

    JavaScript 2023年6月10日
    00
  • JS使用Promise时常见的5个错误总结

    JS使用Promise时常见的5个错误总结 Promise 是 JavaScript 异步编程的重要组成部分,它可以帮助我们更好地处理回调地狱问题,提高代码的可读性和可维护性。但是,在使用 Promise 进行编程时,可能会犯一些常见的错误。本文将总结 Promise 的5个常见错误,以及如何避免这些错误。 1. 没有正确处理 Promise 的错误 在编写…

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