html css js 实现Tab标签页示例代码

HTML、CSS、JS 实现 Tab 标签页是前端开发中常见的应用场景,可以通过实现 Tab 标签页来实现页面的切换和内容展示。下面我将详细讲解 HTML、CSS、JS 实现 Tab 标签页的攻略:

HTML 页面结构

在 HTML 中,每个 Tab 页都可以用一个 div 元素来表示,其中每个 div 元素要包含一个与之相对应的唯一标识符 ID 和相应的内容。

<div class="tabs">
  <div class="tab" id="tab1">Tab 1</div>
  <div class="tab" id="tab2">Tab 2</div>
  <div class="tab" id="tab3">Tab 3</div>
</div>
<div class="tab-content" id="tab1-content">
  This is content of tab 1.
</div>
<div class="tab-content" id="tab2-content">
  This is content of tab 2.
</div>
<div class="tab-content" id="tab3-content">
  This is content of tab 3.
</div>

上面代码片段中,我们首先定义了一个 div 元素来表示 Tab 标签页,每个 Tab 页面用一个 div 来表示,它们都有一个唯一的 id 标识符,用于 JS 代码控制 Tab 的展现。然后定义了三个 div 元素来表示每个 Tab 所对应的内容,它们也都有唯一标识符,便于在 JS 中控制显示与隐藏。

CSS 样式

我们需要设置 Tab 标签页和对应的内容的样式,让它们能够在页面中良好地展现出来。

.tabs {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid #ccc;
  margin-bottom: 10px;
}

.tab {
  padding: 10px;
  cursor: pointer;
  border-bottom: 2px solid transparent;
}

.tab:hover {
  border-bottom: 2px solid #ccc;
}

.tab.active {
  border-bottom: 2px solid #333;
}

.tab-content {
  display: none;
  padding: 20px;
}

.tab-content.active {
  display: block;
}

上面代码片段中,我们先设置了 .tabs 和 .tab-content 的样式,然后定义了 .tab 和 .tab:hover 的样式,分别用于表示 Tab 标签页和鼠标悬停时的效果。.tab.active 和 .tab-content.active 的样式用于表示当前激活的 Tab 和对应的内容。

JS 控制

实现功能的核心部分在于 JavaScript 代码段,需要用 JS 代码实现点击 Tab 时,根据 Tab id 显示对应的内容,并隐藏其他内容。

const tabs = document.querySelectorAll('.tab');
const tabContents = document.querySelectorAll('.tab-content');

tabs.forEach(tab => {
  tab.addEventListener('click', () => {
    const tabId = tab.getAttribute('id');
    const activeTab = document.querySelector('.active');
    const activeTabContent = document.querySelector('.tab-content.active');

    activeTab.classList.remove('active');
    activeTabContent.classList.remove('active');
    tab.classList.add('active');
    document.getElementById(`${tabId}-content`).classList.add('active');
  });
});

上面代码片段中,我们首先取到所有的 .tab 元素和 .tab-content 元素,然后循环遍历所有 .tab 元素,将点击事件添加到 .tab 上。对于每个 .tab 元素,我们获取到其 id,然后移除所有前面激活的元素类名,给当前激活的 .tab 和对应的 .tab-content 添加 active 类名,实现页面上对应 Tab 隐藏与展现。

示例说明

示例1

在实际的项目中,可以根据自己的实际需求调整 HTML 结构和样式。例如,在 Tab 标签页中增加二级导航、按钮等附加控件。

<div class="tabs">
  <div class="tab" id="web">Web</div>
  <div class="tab" id="app">App</div>
  <div class="tab" id="service">Service</div>
  <div class="nav">
    <a href="" class="nav-item">More Web</a>
    <a href="" class="nav-item">More App</a>
    <a href="" class="nav-item">More Service</a>
  </div>
</div>

<div class="tab-content" id="web-content">
  <h3>Web Development</h3>
  <p>Web development is the work involved in developing a website for the Internet.</p>
</div>
<div class="tab-content" id="app-content">
  <h3>App Development</h3>
  <p>Mobile app development is the act or process by which a mobile app is developed for mobile devices.</p>
</div>
<div class="tab-content" id="service-content">
  <h3>Service Development</h3>
  <p>Service development is developing a software that provides a function for the network or distributed environment.</p>
</div>

上面代码片段中,在原有的 Tab 标签页基础之上,我们加入了 .nav 元素和 .nav-item 元素,用于表示每个 Tab 的更多功能。也可以根据需要再次增加不同类型的元素。

示例2

还可以通过接口或配置文件方式,动态生成 Tab,并通过 AJAX 请求异步加载对应内容。例如,在我们的博客页面中,Tab 标签页需要显示最热、最新、分类等不同维度的文章列表,我们可以通过 Django 模板渲染,配合 Ajax 请求动态生成 Tab 界面。

<div class="tabs" id="article-tabs">
  {% for tab in tabs %}
  <div class="tab" id="{{ tab.id }}">{{ tab.name }}</div>
  {% endfor %}
</div>

<div class="tab-content" id="latest-content">
  {% include 'latest_articles.html' %}
</div>

{% for tab in tabs %}
<div class="tab-content" id="{{ tab.id }}-content" class="article-list">
  <div class="loading">Loading...</div>
</div>
{% endfor %}

<script>
  $(document).ready(function() {
    $('#article-tabs .tab').on('click', function() {
      const tabId = $(this).attr('id');
      //异步加载数据并插入HTML
      $.ajax({
        type: 'get',
        url: `/articles/${tabId}/`,
        success: function(data) {
          $(`#${tabId}-content`).html(data);
        }
      });
    });
  });
</script>

上面代码片段中,我们使用 Django 模板和 for 循环语句动态渲染了 Tab 界面和内容部分,每个 Tab 对应一个包含 id、name 等属性的数据对象。在页面 ready 之后给每个 .tab 元素添加点击事件,根据 id 发起 Ajax 请求异步加载对应的内容,然后插入到对应的 .tab-content 元素中。

总之,在 HTML、CSS 和 JS 三个方面努力,我们可以实现灵活多样的 Tab 标签页展示效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:html css js 实现Tab标签页示例代码 - Python技术站

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

相关文章

  • js实现消灭星星(web简易版)

    让我来详细讲解JS实现消灭星星(web简易版)的攻略。 简介 消灭星星是一款非常经典的益智游戏,它将星星消除为游戏目标。在这个web简易版中,我们需要使用JavaScript语言来实现星星的判断和消除。 技术实现 我们需要使用以下技术来实现这个游戏: 1. HTML5和CSS3 我们使用HTML5和CSS3来创建游戏界面和样式,比如星星的样式、背景图、游戏面…

    css 2023年6月10日
    00
  • 使用canvas制作炫酷黑客帝国数字雨背景html+css+js

    讲解如下: 组件原理 使用canvas制作炫酷黑客帝国数字雨背景需要掌握以下知识点: HTML5 Canvas HTML5 Canvas是HTML中的一个标签,可用于绘制图形(如矩形、三角形、圆形、文字等)。 JavaScript JavaScript是一种脚本语言,通常用于在网页中添加交互效果与动态功能。 根据上面提到的知识点,我们可以实现一个基本的”数字…

    css 2023年6月9日
    00
  • 深入理解CSS中的属性模块

    深入理解CSS中的属性模块 CSS是Web开发中不可或缺的一部分,其中属性模块是CSS的重要组成部分。本攻略将深入讲解CSS中的属性模块,包括属性的分类、属性的继承、属性的优先级、属性的默认值等。 1. 属性的分类 CSS中的属性可以分为以下几类: 布局属性:用于控制元素的位置和大小,例如position、display、float等。 盒模型属性:用于控制…

    css 2023年5月18日
    00
  • jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)

    jQuery是一款广泛应用于前端开发的JavaScript库,其强大和便捷的API可以大大提高开发效率。在Web开发中,经常需要使用到弹出层和遮罩层,以提高用户体验。本文将结合示例,详细讲解如何使用jQuery操作DOM实现弹出页面遮罩层,以及在Web端和移动端中阻止遮罩层的滑动。 什么是遮罩层 遮罩层是一种运用在页面上的覆盖层,通常用于弹出框、模态框等场景…

    css 2023年6月10日
    00
  • javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等

    获取和判断浏览器窗口、屏幕、网页的高度、宽度等是前端开发基础中非常重要的知识点,在网站开发中常常会使用到。JavaScript提供了多种方式来获取这些值,下面是这些方法的详细讲解: 获取浏览器窗口的高度和宽度 获取浏览器窗口的高度和宽度可以使用window.innerHeight和window.innerWidth这两个属性来实现,代码如下: console…

    css 2023年6月10日
    00
  • display:inline的用法

    display:inline用于将元素转换为行内元素,即将行内元素设置为更加细小的尺寸,使其自适应其内容大小。在许多情况下,使用display:inline可以用于宽度的自适应,或用于在一行内水平排列多个元素。此外,display:inline还可以用于控制更细粒度的布局。 使用display:inline的示例: 示例1 假设我们要在一个段落中插入一张图片…

    css 2023年6月10日
    00
  • 掌握盒模型轻松DIV CSS网页布局

    盒模型是指在一个网页元素的周围,有边框(Border)、内边距(Padding)、外边距(Margin)和内容(Content)这四个组成部分,这四个部分被称为盒子模型(Box Model)。 掌握盒模型是CSS网页布局的基础,下面是完整的攻略。 了解盒模型 在进行DIV CSS网页布局前,需要先了解盒模型的概念和组成部分,边框、内外边距、内容等部分都会影响…

    css 2023年6月10日
    00
  • 原生js封装自定义滚动条

    下面我给你详细讲解“原生js封装自定义滚动条”的完整攻略。 步骤1:创建HTML结构 首先我们需要创建一个包含内容的元素和一个自定义滚动条的容器。 <div class="scroll-wrapper"> <div class="scroll-content"> <!– 包含内容的元素 …

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