跨浏览器通用、可重用的选项卡tab切换js代码

下面是详细讲解“跨浏览器通用、可重用的选项卡tab切换js代码”的完整攻略:

1. 第一步:创建HTML结构

首先需要创建一个HTML结构,用于展示选项卡。通常,选项卡会有一个顶部的tab标签和多个tab内容区域。以下是一个基本的HTML结构示例:

<div class="tab-container">
  <ul class="tab-header">
    <li class="active">Tab 1</li>
    <li>Tab 2</li>
    <li>Tab 3</li>
  </ul>
  <div class="tab-content active">
    <!-- tab content for tab 1 goes here -->
  </div>
  <div class="tab-content">
    <!-- tab content for tab 2 goes here -->
  </div>
  <div class="tab-content">
    <!-- tab content for tab 3 goes here -->
  </div>
</div>

在以上示例中,tab-container 是最外层的容器,通常会用来对选项卡的样式进行整体的控制。tab-header 是包含 tab 标签(tab header)的 ul 元素,tab-content 是包含 tab 内容(tab content)的 div 元素。每个 tab-header 中需要对应一个 tab-content,并且默认第一个 tab 处于 active 状态。

2. 第二步:编写CSS样式

为了使选项卡具有更好的外观和交互体验,需要编写一些CSS样式来控制外观和行为。以下是一个基本的CSS样式示例:

.tab-container {
  border: 1px solid #ccc;
  padding: 10px;
}
.tab-header {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}
.tab-header li {
  padding: 10px;
  margin-right: 10px;
  cursor: pointer;
  background-color: #ddd;
  border: 1px solid #ccc;
}
.tab-header li.active {
  background-color: #fff;
  border-bottom: none;
}
.tab-content {
  border: 1px solid #ccc;
  padding: 10px;
  display: none;
}
.tab-content.active {
  display: block;
}

在以上示例中,设置了 .tab-container 的边框和内边距,.tab-header 使用了 flex 布局,使其横向排列。.tab-header li 定义了 tab 标签的样式,cursor: pointer 可以使选择器变成一个指针形状,background-color 设置了背景颜色,border 设置了边框样式。.tab-content 定义了 tab 内容的样式,display: none 使其默认处于隐藏状态,.tab-content.active 使其显示。

3. 第三步:编写JavaScript代码

接下来需要编写JavaScript代码,来控制选项卡的显示和隐藏。以下是一个基本的JavaScript代码示例:

// 获取 tab 标签元素
const tabHeader = document.querySelector('.tab-header');
const tabs = tabHeader.querySelectorAll('li');

// 获取 tab 内容元素
const tabContent = document.querySelectorAll('.tab-content');

// 处理 tab 切换
function handleTabClick(event) {
  // 阻止默认事件
  event.preventDefault();

  // 获取当前点击的 tab 标签
  const currentTab = event.target;

  // 获取当前点击的 tab 标签位置
  const index = Array.prototype.indexOf.call(tabs, currentTab);

  // 隐藏所有 tab 内容
  for (let tab of tabContent) {
    tab.classList.remove('active');
  }

  // 显示当前点击的 tab 内容
  tabContent[index].classList.add('active');

  // 重置所有 tab 标签状态
  for (let tab of tabs) {
    tab.classList.remove('active');
  }

  // 激活当前点击的 tab 标签状态
  currentTab.classList.add('active');
}

// 绑定 tab 点击事件处理函数
for (let tab of tabs) {
  tab.addEventListener('click', handleTabClick);
}

在以上示例中,首先获取了 tab 标签元素和 tab 内容元素,然后绑定了 tab 点击事件处理函数 handleTabClick。在这个函数中,使用了for循环和indexof来遍历所有tab,并为当前点击的tab添加active类,以及为相应的tabcontent添加active类。

4. 示例说明

示例1:三个选项卡

在这个示例中,我们创建了一个展示三个选项卡的HTML结构,样式来自上面的CSS样式示例,JavaScript代码来自上面的JavaScript代码示例。运行一下代码,可以实现选项卡点击切换。

<html>
<head>
  <title>示例1-选项卡</title>

  <style>
    /* CSS样式 */
  </style>
</head>
<body>
  <div class="tab-container">
    <ul class="tab-header">
      <li class="active">Tab 1</li>
      <li>Tab 2</li>
      <li>Tab 3</li>
    </ul>
    <div class="tab-content active">
      <p>Tab 1 Content</p>
    </div>
    <div class="tab-content">
      <p>Tab 2 Content</p>
    </div>
    <div class="tab-content">
      <p>Tab 3 Content</p>
    </div>
  </div>

  <script>
    // JavaScript代码
  </script>
</body>
</html>

示例2:带有图片的选项卡

在这个示例中,我们扩展了选项卡的HTML结构,每个选项卡中都包含一张图片。我们可以通过给 tab 内容添加更多HTML元素来实现更丰富的选项卡内容。以下是这个示例的完整代码:

<html>
<head>
  <title>示例2-带图片的选项卡</title>

  <style>
    /* CSS样式 */
  </style>
</head>
<body>
  <div class="tab-container">
    <ul class="tab-header">
      <li class="active">Tab 1</li>
      <li>Tab 2</li>
      <li>Tab 3</li>
    </ul>
    <div class="tab-content active">
      <h2>Tab 1</h2>
      <img src="https://picsum.photos/200/300">
      <p>Tab 1 Content.</p>
    </div>
    <div class="tab-content">
      <h2>Tab 2</h2>
      <img src="https://picsum.photos/200/300">
      <p>Tab 2 Content.</p>
    </div>
    <div class="tab-content">
      <h2>Tab 3</h2>
      <img src="https://picsum.photos/200/300">
      <p>Tab 3 Content.</p>
    </div>
  </div>

  <script>
    // JavaScript代码
  </script>
</body>
</html>

以上就是“跨浏览器通用、可重用的选项卡tab切换js代码”的完整攻略,包含了HTML、CSS、JavaScript的每一个步骤说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:跨浏览器通用、可重用的选项卡tab切换js代码 - Python技术站

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

相关文章

  • 浅析bootstrap原理及优缺点

    浅析Bootstrap原理及优缺点 什么是Bootstrap? Bootstrap是一种由Twitter开发的开源CSS框架,它旨在能够帮助开发人员和设计师快速地创建响应式和现代化的网站。Bootstrap是一个包含了HTML、CSS和JavaScript的组件集合,开发人员可以通过使用这些组件而不需要写太多的代码,从而快速地构建出美观、响应式的网站。 Bo…

    css 2023年6月10日
    00
  • CSS圆形缩放动画简单实现

    下面是“CSS圆形缩放动画简单实现”的完整攻略。 概述 CSS圆形缩放动画,可以用来为网站增加动态效果,让页面更加生动有趣。实现这种动画效果,可以结合 CSS3 中的动画属性和 transform 属性。下面将详细介绍如何实现这种动画效果。 实现步骤 1. 创建HTML结构 首先给缩放的圆形添加一个HTML结构,我们可以用 标签来实现。此外,还要在HTML头…

    css 2023年6月10日
    00
  • webpack 打包压缩js和css的方法示例

    我很乐意为您讲解 “webpack 打包压缩js和css的方法示例”的完整攻略。首先,我们需要明确的是,webpack是一个强大的静态模块打包工具,它可以通过配置文件对JavaScript、CSS、图片等资源进行打包、压缩,并优化加载速度,提高应用程序的性能。 下面是一个简单的webpack配置示例,其中包含了两个常用的loader和一个插件,用于打包压缩J…

    css 2023年6月9日
    00
  • css控制UL LI 的样式详解(推荐)

    我来为您详细讲解“CSS控制UL LI的样式详解(推荐)”这篇文章的完整攻略。 前言 这篇文章主要讲解的是如何使用CSS控制UL LI的样式,并推荐一些实用的技巧和经验。UL和LI分别代表无序列表和列表项,在网页中常常被使用。 CSS控制UL样式 1. 列表项前面显示小图标 使用list-style-type属性来设置列表项前面的小图标的样式。常见的小图标包…

    css 2023年6月10日
    00
  • js实现鼠标悬浮给图片加边框的方法

    欢迎访问我们的网站!要实现鼠标悬浮给图片加边框,您可以通过 JavaScript 代码来完成。下面我将详细介绍这个过程。 1. 使用 CSS 实现边框 首先,如果您只是想简单地给图片添加边框,而不需要在鼠标悬浮时添加边框,您可以使用 CSS 的 border 属性来完成。示例代码如下: <img src="example.jpg" …

    css 2023年6月10日
    00
  • 学会Dreamweaver以后进行网页设计的方法详谈

    学习Dreamweaver进行网页设计的方法详谈 Dreamweaver是一款功能强大的网页开发工具,它可以帮助我们轻松地设计和创建网站。以下是一些学习Dreamweaver进行网页设计的方法。 第一步:学习基本的HTML和CSS知识 在使用Dreamweaver之前,需要先掌握基本的HTML和CSS知识。HTML是网页的骨架,负责定义内容和结构。CSS则用…

    css 2023年6月9日
    00
  • CSS实现导航条Tab切换的三种方法介绍

    标题:CSS实现导航条Tab切换的三种方法介绍 导航条在网页设计中极为常见,Tab切换效果也是常用的交互方式,本文将介绍实现导航条Tab切换的三种方法。 一、利用CSS的:target伪类实现 在导航条和内容区块中,给每个Tab添加一个锚点,如下所示: <ul> <li><a href="#tab1">…

    css 2023年6月9日
    00
  • angular4+百分比进度显示插件用法示例

    首先,我们需要使用npm安装一个名为ngx-progressbar的Angular插件,并将其添加到我们的项目中。 npm install ngx-progressbar –save 在app.module.ts中导入和添加NgProgressModule。 import { NgProgressModule } from ‘@ngx-progressba…

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