JS+DIV+CSS实现的经典标签切换效果代码

yizhihongxing

JS+DIV+CSS实现的经典标签切换效果,通常需要使用JavaScript实现动态的切换效果,具体步骤如下:

  1. HTML结构

首先,我们需要编写HTML代码,包含表示标签的ul列表和对应内容的div块,例如:

<ul class="tab-header">
  <li class="active">Tab1</li>
  <li>Tab2</li>
  <li>Tab3</li>
</ul>
<div class="tab-content">
  <div class="tab-item active">
    <p>Content 1...</p>
  </div>
  <div class="tab-item">
    <p>Content 2...</p>
  </div>
  <div class="tab-item">
    <p>Content 3...</p>
  </div>
</div>

其中,ul表示标签的标题,每个li标签表示一个标签,class="active"表示当前激活标签的样式,div.tab-content为对应内容的容器,每个div.tab-item表示一个标签页的内容。

  1. CSS样式

接下来,我们需要编写CSS样式,包括包含标签标题的ul元素和包含标签页内容的div元素的样式,例如:

/* 标签标题样式 */
.tab-header {
  margin: 0;
  padding: 0;
  list-style: none;
  border-bottom: 1px solid #ccc;
}
.tab-header li {
  display: inline-block;
  padding: 3px 10px;
  background-color: #eee;
  cursor: pointer;
}
.tab-header li.active {
  background-color: #fff;
  border-bottom: 1px solid #fff;
}

/* 标签页内容样式 */
.tab-content {
  border: 1px solid #ccc;
  padding: 10px;
}
.tab-item {
  display: none;
}
.tab-item.active {
  display: block;
}

其中,样式需要分别设置标签标题和标签页容器的样式,使用display属性为标签页内容设置默认为不可见(display:none),当对应标签被激活时显示(display:block)。

  1. JavaScript代码

最后,我们需要编写JavaScript代码,实现标签切换的功能。具体实现过程如下:

//获取标签标题和标签页元素
var tabHeaders = document.querySelectorAll('.tab-header li');
var tabItems = document.querySelectorAll('.tab-item');

//循环绑定CLICK事件
for (var i = 0; i < tabHeaders.length; i++) {
  var tabHeader = tabHeaders[i];
  tabHeader.onclick = function() {
    //获取被点击的标签位置
    var index = this.dataset.index;

    //激活对应的标签和标签页内容
    for (var j = 0; j < tabHeaders.length; j++) {
      if (j == index) {
        tabHeaders[j].classList.add('active');
        tabItems[j].classList.add('active');
      } else {
        tabHeaders[j].classList.remove('active');
        tabItems[j].classList.remove('active');
      }
    }
  }

  //设置标签位置索引
  tabHeader.dataset.index = i;
}

其中,JavaScript代码通过循环绑定click事件,处理被点击的标签索引位置,然后通过循环激活对应的标签和标签页内容的样式。

示例1:

你可以参考下面的代码实现:https://codepen.io/anon/pen/qpXbjN

示例2:

另外,你可以参考下面的优化代码,使用事件代理实现标签切换的效果,可以提高性能:https://codepen.io/anon/pen/mpZvmy

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS+DIV+CSS实现的经典标签切换效果代码 - Python技术站

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

相关文章

  • CSS中让DIV居中的代码

    要让一个DIV居中,可以通过以下三种方式实现: 1. 使用margin属性 将DIV的宽度固定,然后通过设置margin属性,使其左右居中。 .div-center { width: 300px; margin: 0 auto; } 上面代码中,设置了DIV的宽度为300px,然后将左右margin设置为auto,这样DIV就会在水平方向上居中。 2. 使用…

    css 2023年6月10日
    00
  • Jquery常用技巧收集整理篇

    Jquery常用技巧收集整理篇 Jquery 是一款非常流行的 JavaScript 库,它能够帮助开发人员更快速地操作 HTML 文档,实现动态效果和交互。在 Jquery 的使用中,有一些常用的技巧非常值得学习和掌握。 1. 使用选择器优化代码 Jquery 提供了非常强大的选择器功能,可以通过各种方式快速定位到需要操作的元素。在使用 Jquery 的过…

    css 2023年6月9日
    00
  • css3实现椭圆轨迹旋转的示例代码

    下面是详细讲解“css3实现椭圆轨迹旋转的示例代码”的完整攻略: 1. 什么是椭圆轨迹旋转 椭圆轨迹旋转是一种通过CSS3动画实现的效果,它可以使一个物体在椭圆轨道上旋转。实际上,这种效果并不仅限于椭圆形,还可以是任何曲线轨迹。 2. 如何实现椭圆轨迹旋转 要实现椭圆轨迹旋转,需要使用CSS3中的@keyframes关键字和animation属性来定义和控制…

    css 2023年6月10日
    00
  • vue 监听是否切屏和开启小窗的实现过程

    实现Vue监听切换屏幕或开启小窗口可以使用pagehide,blur,visibilitychange和resize等事件来实现。下面将介绍如何使用这些事件监听切屏和开启小窗口。 监听页面切屏 监听页面切换屏幕可以使用pagehide和visibilitychange事件。其中,pagehide事件在页面隐藏时触发,例如用户切换到另一个标签页,或者浏览器被最…

    css 2023年6月10日
    00
  • html+css实现响应式卡片悬停效果

    下面是“html+css实现响应式卡片悬停效果”的完整攻略: 一、准备工作 在开始制作之前,需要先明确一下制作的目标、效果和功能,同时需要准备好所需的工具和文件。 目标和效果:实现一个响应式卡片布局,当鼠标悬停在卡片上时,卡片会有一定的动态效果,以增加用户的体验感。 功能:页面响应式布局、卡片悬停效果、CSS3动画。 工具和文件:文本编辑器(如Sublime…

    css 2023年6月10日
    00
  • Ajax上传图片及上传前先预览功能实例代码

    下面我将详细讲解“Ajax上传图片及上传前先预览功能实例代码”的完整攻略。 1. 引言 在网页开发中,上传图片的功能可谓是必备之一。而为了给用户更好的体验,我们还需要提供上传前的图片预览功能。本文将介绍如何使用Ajax上传图片以及在上传前预览图片。 2. 实现步骤 2.1 HTML结构 首先,我们需要准备HTML结构,包括一个文件上传控件和一个图片预览容器。…

    css 2023年6月11日
    00
  • CSS文字控制与文本控制属性介绍及应用示例

    CSS文字控制与文本控制属性介绍及应用示例 1. 字体属性(font) 1.1 font-family font-family 用于设置文本的字体,多个字体之间用逗号隔开。如果第一个字体不存在,那么会使用下一个字体来代替它。 以下是一个示例: p { font-family: "Georgia", "Times New Roma…

    css 2023年6月9日
    00
  • css控制超链接(css超链接样式)

    CSS控制超链接完整攻略 超链接是网页中常用的元素之一,在阅读过程中点击超链接可以实现页面的跳转。而且,通过CSS样式控制,可以美化超链接的外观,增加用户体验。下面是CSS控制超链接完整攻略: 基本语法格式 在CSS中,通过a标签来控制超链接的样式。a标签表示网页中的超链接,可以通过以下声明属性来控制其外观: a:link { /*超链接默认样式*/ } a…

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