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

yizhihongxing

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日

相关文章

  • div实现阴影边框效果(适应各主流浏览器)

    要实现 div 的阴影边框效果,可以使用 CSS3 的 box-shadow 属性。这个属性可以控制元素的阴影效果,具体使用方法如下: div { box-shadow: h-shadow v-shadow blur spread color inset; } 其中,h-shadow 表示水平阴影偏移量,可以为正值或负值;v-shadow 表示垂直阴影偏移量…

    css 2023年6月10日
    00
  • 菜单栏 “三” 变形为“X”css3过渡动画

    下面详细讲解一下如何实现“菜单栏 ‘三’ 变形为 ‘X’ css3过渡动画”的方案。 步骤一:HTML结构 首先,我们需要在HTML文件中添加一个菜单栏的结构。该结构一般包括一个导航元素和一些菜单项,具体代码如下: <nav id="menu"> <ul> <li><a href="#&…

    css 2023年6月10日
    00
  • js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动

    下面我将详细讲解如何使用JavaScript实现遮罩层登录框和对联广告,并使其自动跟随滚动条滚动的完整攻略。 实现遮罩层登录框 制作遮罩层 制作遮罩层可以通过CSS中的 position 和 z-index 来实现,具体步骤如下: 1.将整个页面包含在一个父容器内,然后设置父容器为相对定位 position: relative。 .parent-contai…

    css 2023年6月10日
    00
  • 使用css属性屏蔽鼠标事件的方法(鼠标点击可穿透上层元素)

    要屏蔽鼠标事件,常用的方法是使用CSS的pointer-events属性。这个属性控制元素是否响应用户的鼠标或手势事件。设置为none时,元素不会响应此类事件,并允许它们穿透到下面的元素,可以用来模拟类似遮罩的效果。下面是一些详细的步骤,以及两个示例说明。 步骤一:设置需要屏蔽事件的元素的CSS代码 首先,我们需要设置需要屏蔽事件的元素的CSS代码。在这个元…

    css 2023年6月9日
    00
  • html5 Canvas画图教程(10)—把面拆成线条模拟出圆角矩形

    下面是对“html5 Canvas画图教程(10)—把面拆成线条模拟出圆角矩形”的详细讲解和攻略。 1. 圆角矩形的绘制 在Canvas中,我们可以通过rect()方法绘制方形,但是绘制圆角矩形相对比较麻烦。在绘制圆角矩形时,我们需要将矩形拆分成多条线段,并且线段的两端需要绘制圆形,从而实现圆角矩形的绘制。 下面是一个绘制圆角矩形的示例代码: <!DO…

    css 2023年6月10日
    00
  • CSS3 新增选择器的实例

    关于CSS3新增选择器的实例攻略,我会给出以下的详细讲解步骤: 一、什么是选择器 首先,我们需要了解什么是选择器。在CSS中,选择器是指用来匹配HTML标记的一种方法。选择器由两部分组成,分别是元素和它的样式,元素是标记本身,样式是对标记进行修饰的一些属性值。通过选择器,我们可以根据元素的不同属性来适用不同的样式。 二、CSS3新增的选择器 CSS3在原有选…

    css 2023年6月9日
    00
  • 简介CSS中的各种选择符

    CSS中的选择器是一种用来选择需要添加样式的HTML元素的方法。根据选择器的不同,可以选择不同类型的HTML元素,更准确地描述选择器中的元素,使样式更精细化。本文将详细讲解CSS中的各种选择符。 1. 层级选择器 层级选择器用于选择一个元素的后代元素。这些元素可以是直接后代,也可以是间接的后代。 代码示例: .container li { margin-le…

    css 2023年6月9日
    00
  • BootStrap前端框架使用方法详解

    Bootstrap前端框架使用方法详解 Bootstrap是一个流行的前端框架,它可以快速地创建响应式和移动设备友好的Web页面。在这份攻略中,我们将介绍Bootstrap的主要特性和如何使用它来创建各种类型的Web页面。 引入Bootstrap 首先,我们需要在我们的HTML文件中引入Bootstrap样式表和Javascript库。我们可以在Bootst…

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