HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)

yizhihongxing

下面我将详细讲解 HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO) 的完整攻略。

1. 理解需求和设计思路

首先要明确需求,该动画效果是实现一个具有切换效果的 TAB 栏,可以通过点击 TAB 来切换不同的内容。

设计思路:

  • 使用 HTML 的 ul 和 li 标签来构建基本的 TAB 栏结构
  • 使用 CSS3 实现动画效果
  • 使用 JavaScript 实现点击 TAB 可以切换不同内容的功能

2. 绘制基本结构

在 HTML 文件中添加 ul 和 li 标签,并编写基本的 CSS 样式,设置每个 TAB 的样式。

<ul>
  <li class="tab active">Tab 1</li>
  <li class="tab">Tab 2</li>
  <li class="tab">Tab 3</li>
</ul>
ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.tab {
  display: inline-block;
  height: 50px;
  line-height: 50px;
  padding: 0 20px;
  cursor: pointer;
  border: 1px solid #ccc;
  border-radius: 5px 5px 0 0;
  margin-right: 10px;
}

.active {
  background-color: #fff;
  border-bottom: none;
}

此时页面上已经可以看到 TAB 栏的基本结构。

3. CSS3 实现动画效果

使用 CSS3 的 transform 属性,配合 transition 属性实现动画效果。这里的思路是使用 transform 的 translateX 属性来移动当前活动的 TAB,达到切换效果。

首先,在 CSS 中添加以下代码:

.tab.active ~ .slide {
  transform: translateX(calc((100% + 10px) * var(--index)));
}

这里使用了 CSS3 变量。在 ul 标签上添加 --index 变量来表示当前活动的 TAB 的下标。

接下来,添加一个 div,用于实现滑动效果。

<div class="slide"></div>

设置样式:

.slide {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 3px;
  width: calc(100% / 3);
  background-color: #4285f4;
  transition: transform 0.3s ease-in-out;
}

这里的宽度使用 calc 函数计算得出,因为本例中有三个 TAB。

此时,如果打开页面,已经可以看到一个滑动的效果了。

4. JavaScript 实现点击 TAB 切换内容

最后一步是通过 JavaScript 实现点击 TAB 切换不同内容的功能。

添加以下代码:

var tabs = document.querySelectorAll('.tab');
var slide = document.querySelector('.slide');
var index = 0;

tabs.forEach(function(tab, k) {
  tab.addEventListener('click', function() {
    index = k;
    slide.style.setProperty('--index', index);
    document.querySelector('.tab.active').classList.remove('active');
    tab.classList.add('active');
  });
});

这里的代码比较简单,先获取所有的 TAB 元素和滑动的元素,再循环遍历每个 TAB,为其添加点击事件。在点击事件中,改变变量 --index 的值,并切换 TAB 的类名。

至此,一个完整的 HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO) 就完成了。

示例说明1

如果需要将 TAB 的数量变更为 4,需要改变的地方只有 CSS。

首先,在 ul 标签中添加一个 li 标签:

<ul>
  <li class="tab active">Tab 1</li>
  <li class="tab">Tab 2</li>
  <li class="tab">Tab 3</li>
  <li class="tab">Tab 4</li>
</ul>

然后修改 .slide 标签的宽度:

.slide {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 3px;
  width: calc(100% / 4);
  background-color: #4285f4;
  transition: transform 0.3s ease-in-out;
}

示例说明2

如果需要更改滑动效果的颜色,只需要简单修改样式即可。

.slide {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 3px;
  width: calc(100% / 3);
  background-color: #FF0000; /* 修改此处 */
  transition: transform 0.3s ease-in-out;
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO) - Python技术站

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

相关文章

  • js、css、html判断浏览器的各种版本

    关于JS、CSS、HTML判断浏览器的各种版本的攻略,我会和你分享一些实用的方法和示例。具体来说,我们可以从以下几个方面来介绍: 判断浏览器类型和版本号 通过 navigator.userAgent 判断浏览器类型和版本号 。这是浏览器自身提供的属性,我们可以通过navigator.userAgent来访问。具体代码示例如下: var ua = naviga…

    css 2023年6月10日
    00
  • bootstrap响应式工具使用详解

    Bootstrap响应式工具使用详解 Bootstrap是一种常用的HTML、CSS、JavaScript框架,提供了多种工具和组件,其中响应式工具能够使你的页面自适应不同设备的屏幕尺寸。 响应式网格系统 响应式网格系统提供了一种将页面分为12列的布局方式,可以方便地控制页面布局在不同设备上的表现。以下是一个例子: <div class="c…

    css 2023年6月11日
    00
  • js实现广告漂浮效果的小例子

    下面是“js实现广告漂浮效果的小例子”的完整攻略。 确定需求 首先,确定需求是实现广告漂浮效果,在页面中展示一张图片或者文字广告,该广告会在页面上上下浮动,并且当鼠标移入时暂停浮动动画,移出时继续浮动。 准备素材 在确定需求后,需要准备素材,即广告的图片或文字。可以自己制作,也可以在网上搜索免费素材。 编写HTML 在准备好素材后,需要编写HTML来展示广告…

    css 2023年6月10日
    00
  • CSS巧妙实现自适应分隔线的N种方法

    根据题目要求,我将为你讲解“CSS巧妙实现自适应分隔线的N种方法”的完整攻略。 一、CSS实现自适应分隔线的方法 在CSS中,我们可以通过多种方式实现自适应分隔线,下面就来为大家介绍几种常用的方法。 方法一:使用border实现 首先,我们可以通过在两个元素之间添加一个装饰性的边框来实现分隔线。这种方法非常简单,只需要在“前一个”元素的CSS样式中,添加bo…

    css 2023年6月9日
    00
  • CSS media queries

    CSS Media Queries是一种响应式Web设计的核心技术,它可以根据不同的媒体(如屏幕、打印机等)和不同的设备(如电脑、平板、手机等)来改变网页的布局和样式,使网页能够在不同的设备上有更好的呈现效果。下面是CSS Media Queries的完整攻略: CSS Media Queries 的语法 Media Queries 基本的语法如下: @me…

    css 2023年6月10日
    00
  • css常用布局多行多列

    CSS常用布局多行多列,可以包含多种布局方式:固定宽度、自适应、响应式等。通常这种布局方式用于网站的核心布局,相当于是网站的骨架。以下是详细的攻略: 栅格系统 栅格系统(Grid System)是常见的CSS布局方式之一,它能够快速构建多行多列的布局。它通过网格的概念建立起一个矩阵系统,可以让内容根据不同的要求排列。我们可以挑选成熟的栅格系统,也可以自己通过…

    css 2023年6月9日
    00
  • 利用相对定位及偏移量做精美输入界面

    让我们详细讲解一下如何利用相对定位及偏移量实现精美的输入界面。 相对定位的概念 相对定位是指元素相对于其原位置进行定位。也就是说,相对定位不会改变元素在页面中的位置,只会对元素进行微调。在 CSS 中,我们可以通过设置 position: relative 来实现相对定位。然后,我们可以使用 top、bottom、left、right 属性来调整元素的位置。…

    css 2023年6月10日
    00
  • Dw CC 2018速记css样式怎么关闭列表样式?

    要关闭列表样式,可以通过CSS样式的list-style属性来实现,具体操作如下: 找到要关闭列表样式的CSS样式所在的文件。 在该样式的文件中添加如下代码:list-style:none;。 将该代码添加到目标标签的样式属性中,例如ul标签的样式: ul { list-style: none; } 保存文件,刷新浏览器查看效果。 以下是两个具体的例子: 示…

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