JavaScript实现的原生态Tab标签页功能【兼容IE6】

下面我会详细讲解如何使用JavaScript实现原生态Tab标签页功能的完整攻略。这个攻略并且兼容IE6浏览器。

准备工作

首先,我们需要准备好HTML、CSS和JavaScript文件。其中,HTML文件中需要包含一个自定义class为tabContainer的容器元素和多个tab标签。此外,CSS文件中需要设置tab标签的样式,这里我们可以采用Flex布局来实现标签页的排列。JavaScript文件中需要定义处理标签页切换的函数和初始化的代码。

实现过程

HTML结构

首先,我们需要定义HTML结构来布局标签页容器和标签页内容。这里,我们可以通过使用ul标签和li标签来设置标签页,并使用div标签来包含标签页内容。

举个例子,我们可以这样设置HTML结构:

<div class="tabContainer">
  <ul class="tabs">
    <li><a href="#tab1">Tab1</a></li>
    <li><a href="#tab2">Tab2</a></li>
  </ul>
  <div id="tab1">
    <p>Tab1 Content Here</p>
  </div>
  <div id="tab2">
    <p>Tab2 Content Here</p>
  </div>
</div>

CSS样式

接下来,我们需要设置标签页的样式,这里我们使用Flex布局来实现标签页的排列。下面是一个简单的示例:

.tabContainer .tabs {
  display: flex;
  justify-content: center;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
  background-color: #f0f0f0;
}

.tabContainer .tabs li {
  margin: 0;
  padding: 10px 20px;
}

.tabContainer .tabs li a {
  color: #333;
  text-decoration: none;
}

.tabContainer .tabs li.active a {
  color: #fff;
  background-color: #333;
}

.tabContainer .tabContent {
  border: 1px solid #333;
  padding: 10px 20px;
}

JavaScript代码

最后,我们需要使用JavaScript代码来实现标签页的切换效果。我们可以使用事件监听器来捕捉标签页的点击事件,并使用setAttributeclassList方法来控制标签页的显示和隐藏。

下面是一个简单的JavaScript示例:

var tabs = document.querySelectorAll('.tabContainer .tabs li');
var tabContents = document.querySelectorAll('.tabContainer .tabContent');

function initTabs() {
  for (var i = 0; i < tabs.length; i++) {
    tabs[i].addEventListener('click', showTab);
  }
}

function showTab(event) {
  event.preventDefault();
  var tabId = event.currentTarget.firstElementChild.getAttribute('href');
  var currentTab = document.querySelector(tabId);
  hideTabs();
  currentTab.style.display = 'block';
  event.currentTarget.classList.add('active');
}

function hideTabs() {
  for (var i = 0; i < tabContents.length; i++) {
    tabContents[i].style.display = 'none';
    tabs[i].classList.remove('active');
  }
}

initTabs();

在这个示例代码中,我们首先通过querySelectorAll方法选中页面中的标签页和标签页内容。然后,我们定义了一个initTabs函数,并在其中使用addEventListener方法来监听所有标签页的点击事件。

在事件处理函数showTab中,我们首先使用getAttribute方法获取当前标签页的ID,接着使用querySelector方法获取当前标签页内容的元素,并将其他标签页隐藏。最后,我们在当前标签页上添加一个类名,以实现标签页选中时的样式效果。

最后,我们在initTabs函数中调用hideTabs函数,以确保所有标签页在页面刷新时都处于隐藏状态。

示例说明

下面是两个使用JavaScript实现原生态Tab标签页功能的示例说明。

示例1:基本标签页

这个示例中,我们创建了一个简单的标签页,用于切换两个不同的内容页。

<div class="tabContainer">
  <ul class="tabs">
    <li><a href="#tab1">Tab1</a></li>
    <li><a href="#tab2">Tab2</a></li>
  </ul>
  <div id="tab1" class="tabContent">
    <p>Tab1 Content Here</p>
  </div>
  <div id="tab2" class="tabContent">
    <p>Tab2 Content Here</p>
  </div>
</div>
var tabs = document.querySelectorAll('.tabContainer .tabs li');
var tabContents = document.querySelectorAll('.tabContainer .tabContent');

function initTabs() {
  for (var i = 0; i < tabs.length; i++) {
    tabs[i].addEventListener('click', showTab);
  }
}

function showTab(event) {
  event.preventDefault();
  var tabId = event.currentTarget.firstElementChild.getAttribute('href');
  var currentTab = document.querySelector(tabId);
  hideTabs();
  currentTab.style.display = 'block';
  event.currentTarget.classList.add('active');
}

function hideTabs() {
  for (var i = 0; i < tabContents.length; i++) {
    tabContents[i].style.display = 'none';
    tabs[i].classList.remove('active');
  }
}

initTabs();

在这个示例中,我们使用了与前面所述的HTML和JavaScript代码相同的代码。你可以直接将这些代码放入你的网页中,并在页面中生成标签页。

示例2:自定义样式

这个示例中,我们创建了一个具有自定义样式的标签页,并使用Flex布局来排列标签页。

<div class="tabContainer">
  <ul class="tabs">
    <li><a href="#tab1">Tab1</a></li>
    <li><a href="#tab2">Tab2</a></li>
    <li><a href="#tab3">Tab3</a></li>
  </ul>
  <div id="tab1" class="tabContent">
    <p>Tab1 Content Here</p>
  </div>
  <div id="tab2" class="tabContent">
    <p>Tab2 Content Here</p>
  </div>
  <div id="tab3" class="tabContent">
    <p>Tab3 Content Here</p>
  </div>
</div>
.tabContainer .tabs {
  display: flex;
  justify-content: center;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
  background-color: #f0f0f0;
}

.tabContainer .tabs li {
  margin: 0;
  padding: 10px 20px;
}

.tabContainer .tabs li a {
  color: #333;
  text-decoration: none;
}

.tabContainer .tabs li.active a {
  color: #fff;
  background-color: #333;
}

.tabContainer .tabContent {
  border: 1px solid #333;
  padding: 10px 20px;
}
var tabs = document.querySelectorAll('.tabContainer .tabs li');
var tabContents = document.querySelectorAll('.tabContainer .tabContent');

function initTabs() {
  for (var i = 0; i < tabs.length; i++) {
    tabs[i].addEventListener('click', showTab);
  }
}

function showTab(event) {
  event.preventDefault();
  var tabId = event.currentTarget.firstElementChild.getAttribute('href');
  var currentTab = document.querySelector(tabId);
  hideTabs();
  currentTab.style.display = 'block';
  event.currentTarget.classList.add('active');
}

function hideTabs() {
  for (var i = 0; i < tabContents.length; i++) {
    tabContents[i].style.display = 'none';
    tabs[i].classList.remove('active');
  }
}

initTabs();

在这个示例中,我们定义了一个自定义样式,并在showTab函数中添加了active类名以实现选中标签页的样式效果。此外,我们在tabstabContents变量中添加了第三个标签页,并对CSS和JavaScript代码进行了必要的修改。

这样,我们就成功地实现了一个自定义样式的原生态Tab标签页功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript实现的原生态Tab标签页功能【兼容IE6】 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)

    jQuery不间断滚动效果是网页中常见的一种滚动方式,其可以模拟百度新闻支持文字、图片、垂直滚动等效果,非常实用。下面就是一份完整的攻略,包含了实现该滚动效果的详细步骤,以及示例代码。 1. HTML结构 首先,我们需要在HTML中设置一个容器,并且在容器中插入滚动元素。以下是一个简单的HTML结构示例: <div id="scrollBox…

    jquery 2023年5月28日
    00
  • 整理一些最近经常遇到的前端面试题

    针对“整理一些最近经常遇到的前端面试题”的完整攻略,我会像下面这样来详细讲解: 一、为什么要整理前端面试题 在准备前端面试的过程中,整理前端面试题有几个好处: 提升面试水平:通过整理前端面试题和答案,了解前端的各种知识点和相关概念,提升前端面试的成功率。 深化前端技术:通过面试题的深入分析和解答,能够加深对前端技术的理解和掌握,为日后的前端工作提供帮助。 扩…

    jquery 2023年5月27日
    00
  • jQWidgets jqxDateTimeInput val()方法

    以下是关于“jQWidgets jqxDateTimeInput val()方法”的完整攻略,包含两个示例说明: 方法简介 val() 方法是 jQWidgets jqxDateTimeInput 控件的一个方法,用于获取或设置日期时间输入框的值。该方法的语法如下: // 获取日期时间输入框的值 var value = $("#jqxDateTim…

    jquery 2023年5月10日
    00
  • js与jquery实时监听输入框值的oninput与onpropertychange方法

    下面是关于“js与jquery实时监听输入框值的oninput与onpropertychange方法”的完整攻略。 一、概述 在前端开发中,时常需要对文本输入框进行实时监听,从而实现实时查找、自动提示等功能。常用的两个方法是 oninput 和 onpropertychange,其中 onpropertychange 是 IE 浏览器专用,而 oninput…

    jquery 2023年5月28日
    00
  • jquery实现的一个简单进度条效果实例

    下面是我们对于jquery实现简单进度条效果的攻略: 1. 概述 进度条效果一般用于显示某个任务的完成情况,它可以让用户更直观地了解任务的执行进度。在jquery中,可以通过动态修改DOM元素的宽度或者百分比来实现进度条效果。 2. 实现步骤 2.1 HTML页面布局 首先,我们需要在HTML文件中创建一个包含进度条的容器。可以使用<div>标签…

    jquery 2023年5月19日
    00
  • jQuery UI position()方法

    以下是关于 jQuery UI position() 方法的完整攻略: jQuery UI position() 方法 在 jQuery UI 中,可以使用 position() 方法将元素定位到指定的位置。position() 方法可以使用多种选项来指定元素的位置,例如 my、at、of、collision 等。 语法 $(selector).positi…

    jquery 2023年5月11日
    00
  • jquery 学习笔记一

    下面是关于 jquery 学习笔记一的完整攻略: 标题 Jquery 学习笔记一 概述 Jquery 是一款快速、简洁的 JavaScript 库,封装了大量常用的操作,可以极大地简化 JavaScript 编程。本篇笔记将介绍 Jquery 的选择器、事件绑定、动画效果等基础功能,并提供示例代码,帮助入门者快速上手。 选择器 基本选择器 在 Jquery …

    jquery 2023年5月28日
    00
  • 使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由

    使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由 为什么不使用微软验证控件 在ASP.NET上,我们可以使用微软提供的验证控件来进行客户端验证。但是,我们使用微软验证控件的时候需要考虑以下几个问题: 微软验证控件只能用于ASP.NET Web Forms,不能用于ASP.NET MVC; 微软验证控件是基于服务端的验证,即…

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