CSS3 Tab动画实例之背景切换动态效果

CSS3 Tab动画实例之背景切换动态效果是一种很有趣的动态效果,它能够制作出炫酷的、富有活力的页面效果。下面是制作这种效果的完整攻略:

准备工作

在开始制作前,我们需要做以下准备工作:

  • 创建一个HTML页面
  • 引入CSS样式文件

在HTML页面中,我们需要创建一个容纳所有Tab内容的div元素,例如:

<div class="tabs">
  <ul class="tab-links">
    <li class="active"><a href="#tab1">Tab 1</a></li>
    <li><a href="#tab2">Tab 2</a></li>
    <li><a href="#tab3">Tab 3</a></li>
    <li><a href="#tab4">Tab 4</a></li>
  </ul>
  <div class="tab-content">
    <div id="tab1" class="tab active">
      <h3>Tab 1</h3>
      <p>This is the content for Tab 1.</p>
    </div>
    <div id="tab2" class="tab">
      <h3>Tab 2</h3>
      <p>This is the content for Tab 2.</p>
    </div>
    <div id="tab3" class="tab">
      <h3>Tab 3</h3>
      <p>This is the content for Tab 3.</p>
    </div>
    <div id="tab4" class="tab">
      <h3>Tab 4</h3>
      <p>This is the content for Tab 4.</p>
    </div>
  </div>
</div>

在这个结构中,每个Tab的内容分别被包含在一个div元素中,并且每个Tab的div元素都有一个唯一的ID。

制作动态效果

第一步:添加CSS样式

/* 隐藏所有的tab内容 */
.tab-content .tab{
  display:none;
}

/* 显示当前选中的tab */
.tab-content .active{
  display:block;
}

/* 给tab链接添加样式 */
.tab-links a{
  margin:0 1em;
  padding:0.5em;
  background:#eee;
  border-radius:5px;
  text-decoration:none;
  color:#000;
}

.tab-links a:hover{
  background:#333;
  color:#fff;
}

.tab-links .active a{
  background:#333;
  color:#fff;
}

/* 添加Tab背景切换动态效果 */
.tabs {
  background: #eee;
  -webkit-transition: background 0.5s;
  -moz-transition: background 0.5s;
  -o-transition: background 0.5s;
  transition: background 0.5s;
}

.tab-links a:hover {
  background: #333;
  color: #fff;
  -webkit-transition: color 0.2s;
  -moz-transition: color 0.2s;
  -o-transition: color 0.2s;
  transition: color 0.2s;
}

.tab-links .active a {
  background: #333;
  color: #fff;
  -webkit-transition: color 0.2s;
  -moz-transition: color 0.2s;
  -o-transition: color 0.2s;
  transition: color 0.2s;
  position: relative;
}

.tab-links .active a:after {
  content: "";
  display: block;
  position: absolute;
  bottom: -10px;
  left: 0;
  width: 100%;
  height: 5px;
  background: #ff9f00;
  -webkit-animation: tab-hover-bar 1s ease-in-out;
  -moz-animation: tab-hover-bar 1s ease-in-out;
  -o-animation: tab-hover-bar 1s ease-in-out;
  animation: tab-hover-bar 1s ease-in-out;
}

@-webkit-keyframes tab-hover-bar {
  from {
    width: 0;
    left: 50%;
  }
  to {
    width: 100%;
    left: 0;
  }
}

@-moz-keyframes tab-hover-bar {
  from {
    width: 0;
    left: 50%;
  }
  to {
    width: 100%;
    left: 0;
  }
}

@-o-keyframes tab-hover-bar {
  from {
    width: 0;
    left: 50%;
  }
  to {
    width: 100%;
    left: 0;
  }
}

@keyframes tab-hover-bar {
  from {
    width: 0;
    left: 50%;
  }
  to {
    width: 100%;
    left: 0;
  }
}

在这个CSS样式中,我们给每个tab内容div设置了display:none属性来隐藏所有的tab内容,同时给选中的tab内容div设置了display:block属性来显示当前选中的tab。

我们给每个tab链接添加了一些样式,如背景颜色、圆角、边框等等,同时添加了:hover样式,当鼠标移动到链接上时,tab链接的背景颜色会变化。

我们添加了一个背景切换动态效果,在tab链接被悬停时,我们用CSS动画制作了一个横向的动态进度条,它在选中的tab链接下面滑动并扩展到整个tab链接的宽度。

第二步:添加JavaScript代码

/* 给tab链接添加点击事件 */
jQuery(document).ready(function($) {
  $('.tab-links a').on('click', function(e) {
    var currentAttrValue = $(this).attr('href');
    $('.tab-content ' + currentAttrValue).slideDown(400).siblings().slideUp(400);
    $(this).parent('li').addClass('active').siblings().removeClass('active');
    e.preventDefault();
  });
});

我们添加了一个点击事件,当tab链接被点击时,我们使用slideUp和slideDown方法滑动显示和隐藏当前选中的tab内容,并使用addClass和removeClass方法来改变tab链接的样式。

示例

下面是两个动态效果的示例,分别是背景颜色和背景图片切换:

背景颜色切换

<div class="tabs">
  <ul class="tab-links">
    <li class="active"><a href="#tab1">Red</a></li>
    <li><a href="#tab2">Blue</a></li>
    <li><a href="#tab3">Green</a></li>
  </ul>
  <div class="tab-content">
    <div id="tab1" class="tab active">
      <h3>Red</h3>
      <p>This is the content for Red.</p>
    </div>
    <div id="tab2" class="tab">
      <h3>Blue</h3>
      <p>This is the content for Blue.</p>
    </div>
    <div id="tab3" class="tab">
      <h3>Green</h3>
      <p>This is the content for Green.</p>
    </div>
  </div>
</div>
/* 使用背景颜色制作动态效果 */
.tabs {
  background: #ff0000;
  -webkit-transition: background 0.5s;
  -moz-transition: background 0.5s;
  -o-transition: background 0.5s;
  transition: background 0.5s;
}

.tab-links a:hover {
  background: #0000ff;
  color: #fff;
  -webkit-transition: color 0.2s;
  -moz-transition: color 0.2s;
  -o-transition: color 0.2s;
  transition: color 0.2s;
}

.tab-links .active a {
  background: #0000ff;
  color: #fff;
}

背景图片切换

<div class="tabs">
  <ul class="tab-links">
    <li class="active"><a href="#tab1">Image 1</a></li>
    <li><a href="#tab2">Image 2</a></li>
    <li><a href="#tab3">Image 3</a></li>
  </ul>
  <div class="tab-content">
    <div id="tab1" class="tab active">
      <h3>Image 1</h3>
      <p>This is the content for Image 1.</p>
    </div>
    <div id="tab2" class="tab">
      <h3>Image 2</h3>
      <p>This is the content for Image 2.</p>
    </div>
    <div id="tab3" class="tab">
      <h3>Image 3</h3>
      <p>This is the content for Image 3.</p>
    </div>
  </div>
</div>
/* 使用背景图片制作动态效果 */
.tabs {
  background: url('image1.jpg');
  -webkit-transition: background 0.5s;
  -moz-transition: background 0.5s;
  -o-transition: background 0.5s;
  transition: background 0.5s;
}

.tab-links a:hover {
  background: url('image2.jpg');
  color: #fff;
  -webkit-transition: color 0.2s;
  -moz-transition: color 0.2s;
  -o-transition: color 0.2s;
  transition: color 0.2s;
}

.tab-links .active a {
  background: url('image2.jpg');
  color: #fff;
}

在这个示例中,我们使用了两个不同的背景图片,来展示背景图片切换效果的动态效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CSS3 Tab动画实例之背景切换动态效果 - Python技术站

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

相关文章

  • javascript css实现三级目录(简单的)

    来介绍一下如何使用Javascript和CSS实现简单的三级目录。 1. 准备工作 在HTML中,首先需要准备一个嵌套的列表结构,用来表示三级目录的层次关系。可以使用无序列表(ul)和有序列表(ol)嵌套的方式来构建,例如: <ul> <li> <a href="#">Item 1</a> …

    css 2023年6月10日
    00
  • mpvue将vue项目转换为小程序

    将Vue项目转换为微信小程序有两种方式: 使用mpvue框架 mpvue是一款基于Vue的小程序开发框架,它提供了一套完整的Vue.js语法支持,并扩展了微信小程序原生的API和组件。下面是使用mpvue将Vue项目转换为微信小程序的步骤: (1)安装mpvue-cli工具 npm install –g mpvue-cli (2)创建mpvue项目 mpvu…

    css 2023年6月9日
    00
  • CSS属性简写和选择器的优先级问题

    当我们编写CSS样式时,经常会遇到不同CSS属性的简写,这也是我们写代码中需要注意的一点。同时,CSS的选择器的优先级问题也是一个需要注意的问题。下面,我将详细的讲解这两个问题。 CSS属性简写 CSS属性简写指的是在编写CSS样式时有一些常用的CSS属性可以缩写,并且这些缩写可以根据顺序处理属性。常用的CSS属性简写包括font,background,bo…

    css 2023年6月9日
    00
  • PhotoshopCC全部功能手册全解析

    Photoshop CC 全部功能手册全解析 Photoshop CC 是一款强大的图像处理软件,提供了众多高级功能和特效,让用户可以轻松地制作出各种优美的图像和设计作品。为了更好的使用 Photoshop CC,我们准备了一份完整的功能手册,让您了解 Photoshop CC 的全部功能和用法。 以下是 Photoshop CC 全部功能手册的详细说明: …

    css 2023年6月10日
    00
  • jQuery实战之仿淘宝商城左侧导航效果

    欢迎阅读本篇文章,本文将带你详细讲解“jQuery实战之仿淘宝商城左侧导航效果”的完整攻略,教你如何使用jQuery实现仿淘宝商城左侧导航栏效果。 包含的技术点 HTML基础标签的应用 CSS样式定义及样式优化 jQuery基础知识 jQuery的DOM操作方法 jQuery的动画效果 实现步骤 步骤1:HTML结构 仿淘宝商城左侧导航栏的核心部分在于HTM…

    css 2023年6月10日
    00
  • css中行内元素和块级元素的区别

    行内元素和块级元素是CSS中两种不同类型的元素,它们的主要区别在于在Web页面上显示的位置和行为不同。 行内元素 行内元素是指默认情况下在页面上呈现为一行的元素。以下是行内元素的一些特征: 宽度由内容决定:行内元素的宽度始终由元素内容的宽度决定,无法设置具体的宽度。 不能设置高度:行内元素的高度值是由字体大小来决定的,不能设置具体的高度值。 可以和其他元素在…

    css 2023年6月10日
    00
  • css实现文字垂直居中的代码第1/2页

    当需要将文字垂直对齐到容器中心时,可以使用CSS的flexbox布局或者行高+伪元素的方式实现。下面分别对这两种方法进行说明。 方法一:flexbox布局 Flexbox布局允许我们通过align-items属性将元素的内容垂直居中。具体实现方式如下: 创建一个容器元素,并设置display为flex以启用flexbox布局。 通过align-items属性…

    css 2023年6月9日
    00
  • HTML5制作酷炫音频播放器插件图文教程

    针对“HTML5制作酷炫音频播放器插件”的完整攻略,我将从以下几个方面进行讲解: 音频标签的使用 播放控制的设计 界面的实现 一、音频标签的使用 音频标签是HTML5新增的标签之一,可以方便地在网页中添加音频文件。我们可以使用以下代码添加一个音频标签: <audio src="example.mp3"></audio&g…

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