js封装tab标签页实例分享

让我们开始讲解“js封装tab标签页实例分享”的完整攻略。

什么是Tab标签页?

Tab标签页是常见的一种页面展示方式,通常用于多个页面之间进行切换,实现单页应用程序(SPA)或多标签应用程序,可以让用户直观地浏览内容。

如何使用js封装Tab标签页?

以下是一些关键步骤来创建一个可复用的Tab标签页组件:

第一步:HTML 结构

我们需要先在HTML中定义一个容器,用来承载Tab标签页的内容。如下所示:

<div class="tab">
  <ul class="tab-nav">
    <li class="tab-nav-item active">Tab 1</li>
    <li class="tab-nav-item">Tab 2</li>
    <li class="tab-nav-item">Tab 3</li>
  </ul>
  <div class="tab-content active">Content 1</div>
  <div class="tab-content">Content 2</div>
  <div class="tab-content">Content 3</div>
</div>

这里使用了一个有序列表(ul)来作为Tab选项卡,div用来作为标签所对应的内容。

第二步:CSS 样式

为了美化用户界面,我们需要使用CSS来设计样式:

.tab {
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
}
.tab-nav {
  list-style: none;
  display: flex;
  justify-content: center;
  padding: 0;
  margin: 0;
}
.tab-nav-item {
  margin-right: 20px;
  cursor: pointer;
  padding: 10px 20px;
  border-radius: 5px 5px 0 0;
  background-color: #f0f0f0;
}
.tab-nav-item.active {
  background-color: #fff;
  font-weight: bold;
}
.tab-content {
  display: none;
  padding: 20px;
  border: 1px solid #ccc;
  border-top: none;
}
.tab-content.active {
  display: block;
}

这里我们使用Flexbox来构建选项卡和内容的容器,实现了一个标准的选项卡结构。

第三步:JavaScript 封装

我们需要编写 JavaScript 代码来控制Tab的行为,这里介绍两个不同的实例:

实例一:使用原生 JavaScript 开发 Tab

这里是使用原生JavaScript代码开发的Tab,功能如下:

  1. 点击选项卡时,切换到相应的选项卡并显示相应的内容
  2. 第一个选项卡默认为激活状态
(function () {
  // 获取Tab和其它元素
  var tab = document.querySelector('.tab');
  var tabNavItems = tab.querySelectorAll('.tab-nav-item');
  var tabContents = tab.querySelectorAll('.tab-content');

  // 给第一个选项卡添加激活状态,显示对应的内容
  tabNavItems[0].classList.add('active');
  tabContents[0].classList.add('active');

  // 绑定事件处理函数
  tab.addEventListener('click', function (e) {
    var target = e.target;
    if (target.classList.contains('tab-nav-item')) {
      // 切换选项卡和内容的激活状态
      toggleTab(target, tabNavItems, tabContents);
    }
  });

  // 切换选项卡和内容的激活状态
  function toggleTab(target, tabNavItems, tabContents) {
    // 获取选项卡和内容的索引值
    var index = Array.from(tabNavItems).indexOf(target);

    // 将所有选项卡和内容的激活状态移除
    tabNavItems.forEach(function (item) {
      item.classList.remove('active');
    })
    tabContents.forEach(function (item) {
      item.classList.remove('active');
    })

    // 将当前点击的选项卡和内容添加激活状态
    target.classList.add('active');
    tabContents[index].classList.add('active');
  }
})();

实例二:使用 jQuery 开发 Tab

这里是使用 jQuery 开发的 Tab,它具有以下功能:

  1. 点击选项卡时,切换到相应的选项卡并显示相应的内容
  2. 第一个选项卡默认为激活状态
(function () {
  // 给第一个选项卡添加激活状态,显示对应的内容
  $('.tab-nav-item:first-child').addClass('active');
  $('.tab-content:first-child').addClass('active');

  // 绑定事件处理函数
  $('.tab-nav').on('click', '.tab-nav-item', function () {
     // 切换选项卡和内容的激活状态
     $(this).addClass('active').siblings().removeClass('active');
     var index = $(this).index();
     $('.tab-content').eq(index).addClass('active').siblings().removeClass('active');
  });
})();

以上是两个不同的Tab实现方案,您可以根据自己的需要来选择一个适合自己的实现方式。

总结

Tab标签页可以为用户提供友好的界面体验,并且有利于组织页面结构和内容。在此攻略中,我们简要介绍了如何使用HTML,CSS和JavaScript来创建一个通用的Tab标签页组件。希望这些信息对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js封装tab标签页实例分享 - Python技术站

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

相关文章

  • 利用redis实现聊天记录转存功能的全过程

    以下是利用Redis实现聊天记录转存功能的完整攻略,包含两个示例说明: 1. 创建Redis连接 首先,我们需要使用Redis客户端库连接到Redis服务器。可以使用Python的redis库来实现。以下是一个示例代码: import redis # 创建Redis连接 redis_client = redis.Redis(host=’localhost’,…

    other 2023年10月18日
    00
  • C++中的三种继承public,protected,private详细解析

    让我来为大家讲解一下C++中的三种继承——public、protected和private。 什么是继承 在C++中,继承是一种从已存在的类中派生出新的类的机制。通过继承,新的类可以获得已存在的类的所有属性和行为。 三种继承方式 public继承 public继承是基类(被继承类)中的public和protected成员在派生类(继承类)中仍旧保持publi…

    other 2023年6月26日
    00
  • Spring Bean生命周期之Bean的注册详解

    Spring Bean生命周期之Bean的注册详解 在Spring中,Bean的注册是Spring容器管理Bean的重要一环。本攻略将会详细讲解在Spring容器中如何注册Bean,并着重介绍三种注册方式。 一、Bean的注册方式 Spring提供了三种Bean的注册方式: XML文件中的Bean定义:Spring最早使用的一种Bean注册方式,需要在XML…

    other 2023年6月27日
    00
  • mysql 查看当前使用的配置文件my.cnf的方法(推荐)

    要查看当前MySQL使用的配置文件my.cnf的方法,可以按照以下步骤进行操作: 进入MySQL命令行: mysql -u root -p 该命令中,-u选项用于指定MySQL用户名,-p选项用于提示输入MySQL用户密码。 查看当前MySQL的变量值: SHOW VARIABLES; 该命令用于查看当前MySQL服务器的变量及其对应的值。其中,可以查看到m…

    other 2023年6月25日
    00
  • Firefox下input button内文字不能垂直居中的解决方法

    该问题主要是由于不同浏览器对CSS的处理方式不同导致的。 以下是解决该问题的几种方法: 方法一:使用line-height属性 使用该属性可以使文字垂直居中。具体方法为为input button设置一个合适的line-height值。例如: input[type="button"] { height: 30px; line-height:…

    other 2023年6月27日
    00
  • Win10系统开始菜单应用程序不见了怎么办

    Win10系统开始菜单应用程序不见了怎么办 若你在使用 Windows 10 操作系统的过程中遇到了开始菜单上的应用程序不见的情况,可以按以下步骤进行排查和解决。 方法一:重启 Windows Explorer Windows Explorer 是 Windows 操作系统中的一个基本组件,它有时会崩溃或出现异常。如果开始菜单上的应用程序不见,可以通过重启 …

    other 2023年6月25日
    00
  • Java创建型设计模式之抽象工厂模式(Abstract Factory)

    Java创建型设计模式之抽象工厂模式(Abstract Factory) 抽象工厂模式是一种创建型设计模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定具体实现类。抽象工厂模式通过将对象的创建委托给工厂类来实现,从而实现了客户端与具体实现类的解耦。 结构 抽象工厂模式由以下几个关键组件组成: 抽象工厂(Abstract Factory):定义了…

    other 2023年10月15日
    00
  • linux查看文件系统块大小与内存页大小的简单方法

    要查看Linux系统所使用的文件系统块大小和内存页大小,可以按照以下步骤进行。 查看文件系统块大小 Linux中使用的文件系统块大小既可以是硬编码的也可以是动态的。可以使用以下命令来检查文件系统块的大小。 $ sudo dumpe2fs /dev/sda1 | grep "Block size" 上述命令用于查看/dev/sda1上使用的…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部