CSS标签切换代码实例教程 比较漂亮

ChromeJS网站专栏上的“CSS标签切换代码实例教程 比较漂亮”是一篇介绍如何实现CSS标签切换效果的教程,该文主要从以下几个方面进行讲解:

1. 目录结构

首先,该文介绍了整个教程所需要的文件结构以及所用到的文件,其中主要包括index.html、index.css和index.js三个文件和一个img文件夹。

2. 实现思路

其次,该文详细介绍了如何实现CSS标签切换效果的实现思路。主要思路是通过JS控制HTML中标签的class属性,从而实现标签样式的切换。具体来说,文章介绍了如何使用JS监听页面加载完毕事件,然后通过获取相应的DOM元素、添加和删除类名等方式来实现标签切换。

3. 代码实现

最后,该文提供了两个完整的代码实例。第一个实例是基础版,通过改变标签的class实现了标签切换效果。第二个实例是升级版,引入了动画效果和鼠标事件监听,让标签切换更加生动有趣。

下面分别通过代码块的形式来展示这两个实例,具体代码实现详见以下示例:

基础版代码实现

<!-- index.html -->
<div class="container">
  <div class="header">
    <ul class="tabs">
      <li class="active"><a href="#" data-target="#tab1">Tab 1</a></li>
      <li><a href="#" data-target="#tab2">Tab 2</a></li>
      <li><a href="#" data-target="#tab3">Tab 3</a></li>
    </ul>
  </div>
  <div class="content">
    <div id="tab1" class="active">This is tab 1</div>
    <div id="tab2">This is tab 2</div>
    <div id="tab3">This is tab 3</div>
  </div>
</div>

<!-- index.css -->
.container {
  max-width: 800px;
  margin: 0 auto;
  background-color: #f5f5f5;
  box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.3);
}

.header {
  display: flex;
  justify-content: center;
}

.tabs {
  display: flex;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

.tabs li {
  margin-right: 10px;
}

.tabs li a {
  display: block;
  padding: 10px;
  text-decoration: none;
  background-color: #ddd;
  color: #333;
}

.tabs li.active a {
  background-color: #3388dd;
  color: #fff;
}

.content div {
  display: none;
}

.content div.active {
  display: block;
}

<!-- index.js -->
let tabs = document.querySelectorAll('.tabs li a');

for (let i = 0; i < tabs.length; i++) {
  tabs[i].addEventListener('click', (e) => {
    e.preventDefault();
    let target = e.target.getAttribute('data-target');
    let tab = document.querySelector(target);
    let activeTab = document.querySelector('.content .active');
    activeTab.classList.remove('active');
    tab.classList.add('active');
    let activeLink = document.querySelector('.tabs .active');
    activeLink.classList.remove('active');
    e.target.parentElement.classList.add('active');
  })
}

升级版代码实现

<!-- index.html -->
<div class="container">
  <div class="header">
    <ul class="tabs">
      <li class="active"><a href="#" data-target="#tab1">Tab 1</a></li>
      <li><a href="#" data-target="#tab2">Tab 2</a></li>
      <li><a href="#" data-target="#tab3">Tab 3</a></li>
    </ul>
  </div>
  <div class="content">
    <div id="tab1" class="active"><img src="./img/image1.jpg"></div>
    <div id="tab2"><img src="./img/image2.jpg"></div>
    <div id="tab3"><img src="./img/image3.jpg"></div>
  </div>
</div>

<!-- index.css -->
.container {
  max-width: 800px;
  margin: 0 auto;
  background-color: #f5f5f5;
  box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.3);
}

.header {
  display: flex;
  justify-content: center;
}

.tabs {
  display: flex;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

.tabs li {
  margin-right: 10px;
}

.tabs li a {
  display: block;
  padding: 10px;
  text-decoration: none;
  background-color: #ddd;
  color: #333;
}

.tabs li.active a {
  background-color: #3388dd;
  color: #fff;
}

.content div {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 56.25%; /* 16:9 aspect ratio */
  overflow: hidden;
}

.content div img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 300ms ease;
}

.content div.active img {
  opacity: 1;
}

<!-- index.js -->
let tabs = document.querySelectorAll('.tabs li a');

for (let i = 0; i < tabs.length; i++) {
  tabs[i].addEventListener('click', (e) => {
    e.preventDefault();
    let target = e.target.getAttribute('data-target');
    let tab = document.querySelector(target);
    let activeTab = document.querySelector('.content .active');
    activeTab.classList.remove('active');
    tab.classList.add('active');
    let activeLink = document.querySelector('.tabs .active');
    activeLink.classList.remove('active');
    e.target.parentElement.classList.add('active');
  })
}

let content = document.querySelector('.content');

content.addEventListener('mouseenter', () => {
  content.classList.add('hover');
})

content.addEventListener('mouseleave', () => {
  content.classList.remove('hover');
})

以上就是这篇“CSS标签切换代码实例教程 比较漂亮”的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CSS标签切换代码实例教程 比较漂亮 - Python技术站

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

相关文章

  • 用css margin去掉横排图片之间的间距

    首先需要明确一点,图片之间存在间距的原因通常是由于其默认的外边距(margin)和内边距(padding)引起的。接下来,提供以下两种方法可以去掉横排图片之间的间距。 方法一:设置图片的display属性 将图片的display属性设置为“inline-block”,然后设置其外边距(margin)为负值就可以去掉图片之间的间距了。比如: img { dis…

    css 2023年6月10日
    00
  • CSS3 实现童年的纸飞机

    下面我将详细讲解如何用CSS3实现童年的纸飞机。 简介 本篇攻略将带你了解如何使用CSS3来创造一个可爱的纸飞机。纸飞机用时髦的CSS3动画,可以飞翔在你的网页中。 实现步骤 创建HTML结构 首先,我们需要在HTML中创建一个容器div,它将包含我们的纸飞机。以下是HTML代码: <div class="paper-plane"&…

    css 2023年6月10日
    00
  • jQuery UI旋转器部件Spinner Widget

    jQuery UI旋转器部件Spinner Widget攻略 jQuery UI的旋转器部件(Spinner Widget)可以提供一个高度可定制的数字输入框,用户可以通过拖拽或手动输入的方式修改数字值。以下是关于如何使用jQuery UI旋转器部件Spinner Widget的完整攻略。 安装jQuery UI库 在开始使用jQuery UI旋转器部件之前…

    css 2023年6月10日
    00
  • html中Div与table的区别(各方面细节探讨)

    HTML中的div和table是常见的布局元素,它们在页面布局方面有着不同的应用场景和优劣势。在本文中,我们将详细讲解div和table的区别,包括以下关键点: 基本概念:div和table的定义和基本用途 布局方式:div和table的布局方式有何不同 可访问性:div和table对可访问性的影响 SEO优化:div和table的SEO优化差异 解析效率:…

    css 2023年6月10日
    00
  • JQuery模拟实现网页中自定义鼠标右键菜单功能

    下面是「JQuery模拟实现网页中自定义鼠标右键菜单功能」的完整攻略: 1. 实现思路 要模拟实现网页中自定义鼠标右键菜单功能,我们需要以下几个步骤: 绑定页面元素的右键菜单事件。 阻止默认的右键菜单事件。 创建自定义的菜单元素。 在页面上显示自定义的菜单元素。 根据用户的点击位置,调整自定义菜单的显示位置。 定义菜单元素的点击事件,实现对应功能。 接下来,…

    css 2023年6月10日
    00
  • JavaScript实现图片本地预览功能【不用上传至服务器】

    JavaScript实现图片本地预览功能,不用上传至服务器,可以通过以下几个步骤实现: HTML代码: 在HTML代码中添加<input>标签,用于选择图片文件,并监听其中的change事件,代码如下: <!– 选择图片文件 –> <input type="file" onchange="han…

    css 2023年6月11日
    00
  • DIV+CSS 三栏布局实例代码

    接下来我将为您介绍详细的“DIV+CSS 三栏布局实例代码”攻略: 一、前置知识 在学习“DIV+CSS 三栏布局实例代码”之前,我们需要掌握以下前置知识: HTML和CSS基础语法:学会如何创建HTML文档,以及如何在CSS中定义样式。 盒子模型:了解块级元素和内联元素的概念,掌握padding、border和margin等属性的使用方法。 浮动和清除浮动…

    css 2023年6月10日
    00
  • jQuery实现对网页节点的增删改查功能示例

    下面是关于“jQuery实现对网页节点的增删改查功能示例”的详细攻略。 1. 引入jQuery库 在编写jQuery代码之前,首先需要在网页上引入jQuery库。可以通过以下代码在HTML文件中引入jQuery库: <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js&…

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