JS自定义选项卡函数及用法实例分析

JS自定义选项卡函数及用法实例分析

选项卡是网页中常用的一种导航方式,通过切换不同的选项卡来展示不同的内容。使用JS可以轻松实现自定义的选项卡,并添加各种效果。

函数实现

以下是一个自定义选项卡的JS函数实现:

function tabSwitch(tabNav, tabContent, activeClass, index) {
  // 获取选项卡菜单和内容的元素
  var nav = document.querySelectorAll(tabNav);
  var content = document.querySelectorAll(tabContent);

  // 隐藏所有的选项卡
  content.forEach(function(item) {
    item.style.display = 'none';
  });

  // 移除所有菜单项的激活状态
  nav.forEach(function(item) {
    item.classList.remove(activeClass);
  });

  // 显示指定位置的选项卡
  content[index].style.display = 'block';

  // 给指定的菜单项添加激活状态
  nav[index].classList.add(activeClass);

  // 点击菜单切换选项卡
  nav.forEach(function(item, idx) {
    item.addEventListener('click', function(evt) {
      evt.preventDefault();
      content.forEach(function(tab) {
        tab.style.display = 'none';
      });
      nav.forEach(function(nav) {
        nav.classList.remove(activeClass);
      });
      evt.target.classList.add(activeClass);
      content[idx].style.display = 'block';
    });
  });
}

该函数接受四个参数:

  • tabNav:选项卡菜单的选择器
  • tabContent:选项卡内容的选择器
  • activeClass:激活状态的类名
  • index:默认展示的选项卡位置

用法示例

以下是两个用法示例:

示例1:默认选中第一个选项卡

HTML结构:

<div class="tab-wrap">
  <ul class="tab-nav">
    <li class="active"><a href="#">选项卡1</a></li>
    <li><a href="#">选项卡2</a></li>
    <li><a href="#">选项卡3</a></li>
  </ul>
  <div class="tab-content">
    <div class="tab-panel active">选项卡1的内容</div>
    <div class="tab-panel">选项卡2的内容</div>
    <div class="tab-panel">选项卡3的内容</div>
  </div>
</div>

使用方法:

tabSwitch('.tab-nav li', '.tab-content .tab-panel', 'active', 0);

其中,.tab-nav li选择器对应选项卡菜单的元素,.tab-content .tab-panel选择器对应选项卡内容的元素,active是激活状态的类名,0表示默认选中第一个选项卡。

示例2:自定义样式和效果

HTML结构:

<div class="tab-wrap2">
  <div class="tab-nav">
    <a href="#" data-index="0" class="active">选项卡1</a>
    <a href="#" data-index="1">选项卡2</a>
    <a href="#" data-index="2">选项卡3</a>
  </div>
  <div class="tab-content">
    <div class="tab-panel active">选项卡1的内容</div>
    <div class="tab-panel">选项卡2的内容</div>
    <div class="tab-panel">选项卡3的内容</div>
  </div>
</div>

使用方法:

tabSwitch('.tab-nav a', '.tab-content .tab-panel', 'active', 0);

// 自定义样式和效果
var tabNav = document.querySelector('.tab-nav');
tabNav.addEventListener('click', function(evt) {
  if (evt.target.tagName.toLowerCase() === 'a') {
    evt.preventDefault();

    // 移除所有菜单项的激活状态
    tabNav.querySelectorAll('a').forEach(function(a) {
      a.classList.remove('active');
    });

    // 添加当前菜单项的激活状态
    evt.target.classList.add('active');
  }
});

其中,.tab-nav a选择器对应选项卡菜单的元素,.tab-content .tab-panel选择器对应选项卡内容的元素,active是激活状态的类名,0表示默认选中第一个选项卡。在之后的代码中,我们添加了一个事件监听器,实现了自定义的菜单项样式和效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS自定义选项卡函数及用法实例分析 - Python技术站

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

相关文章

  • MyEclipse 10导入JDK1.7或1.8

    MyEclipse 10导入JDK1.7或1.8 MyEclipse是一款Java框架的开发工具,支持多种语言和技术,可以让Java开发者更轻松地开发应用程序。在使用MyEclipse进行开发时,需要导入相应版本的JDK,本文将介绍如何在MyEclipse 10中导入JDK1.7或1.8。 下载JDK安装包 首先需要从Oracle官网下载JDK1.7或1.8…

    其他 2023年3月28日
    00
  • Windows Server 2012下手动配置IIS的文件夹访问权限

    Windows Server 2012下手动配置IIS的文件夹访问权限 在Windows Server 2012操作系统下,为了更好的保护网站数据的安全,我们通常需要手动配置IIS的文件夹访问权限。本文将介绍如何在Windows Server 2012下手动配置IIS的文件夹访问权限的步骤和方法。 步骤一:打开IIS Manager 在 Windows Se…

    其他 2023年3月28日
    00
  • 华为mate8怎么刷机 华为mate8两种刷机教程

    华为mate8怎么刷机 前置条件 在进行华为mate8刷机前,请务必做好以下几点准备: 1.备份好手机中的重要数据,并将备份文件存储到安全的地方; 2.确保手机电量充足,在刷机过程中不要断电; 3.下载并安装好适用于华为mate8的刷机工具及刷机包; 4.了解所使用刷机工具和刷机包的适用版本,避免不必要的麻烦和损失。 刷机方法一:使用华为官方线刷工具 1.首…

    other 2023年6月27日
    00
  • numpy与list之间的转换

    numpy与list之间的转换 在进行数据处理和科学计算时,numpy是一款非常强大的工具。Numpy提供了许多用于处理多维数组及矩阵的函数,可以有效提高处理数据的效率及精度。但有时候,我们需要将numpy数组转换为Python的列表(List)类型,或反过来进行转换。本文将介绍numpy数组和Python列表之间的转换方式。 1.将list转为ndarra…

    其他 2023年3月28日
    00
  • Python中的作用域规则详解

    Python中的作用域规则详解 在Python中,作用域是指变量的可访问性和可见性范围。了解Python中的作用域规则对于正确理解变量的作用范围和生命周期非常重要。本攻略将详细介绍Python中的作用域规则。 1. 全局作用域 全局作用域是指在整个程序中都可访问的变量。在Python中,全局作用域可以在任何函数内部访问,但需要使用global关键字声明。 示…

    other 2023年8月19日
    00
  • Win10共享登录帐户名怎么设置显示或隐藏?

    Win10共享登录帐户名是指多个用户可以共享同一个帐户登录电脑,此时,登录界面将显示该共享帐户的用户名,但是,有些用户由于安全等方面的考虑,希望隐藏该共享帐户的用户名。那么,如何在Win10中设置共享帐户的用户名的显示或隐藏呢?下面是详细攻略: 第一步:进入注册表编辑器 Win10共享登录帐户名的设置需要通过注册表编辑器实现,按下 Win+R 快捷键,同时在…

    other 2023年6月27日
    00
  • 根据字节码探讨java自增运算符的原理

    根据字节码探讨Java自增运算符的原理 Java中的自增运算符一般表示为++, 它是许多编程语言都支持的一种运算符。它可以用于增加一个变量的值,也可以用于表达式中。 但是,它的行为有时会令人困惑。本文将通过字节码层面,深入探讨Java自增运算符的原理以及它在代码中的使用。 什么是自增运算符 在Java中,自增运算符表示为++,可以用于增加一个变量的值。例如:…

    其他 2023年3月28日
    00
  • springboot之响应式编程

    Spring Boot之响应式编程 什么是响应式编程? 响应式编程(Reactive Programming)是基于事件、流、异步编程方式的一种编程范式,它主要的思想是基于数据流进行操作处理,通过数据流在组件之间传递信息。对于变化的数据,通过响应式编程可以实现自动更新,减少对代码业务的处理需求。响应式编程思想的出现可以让我们更好的应对客户需求的变化,满足信息…

    其他 2023年3月28日
    00
合作推广
合作推广
分享本页
返回顶部