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日

相关文章

  • 理论普及——用户体验

    用户体验是一个网站设计中非常重要的概念,它直接影响着用户的满意度和使用体验。在进行网站设计之前,我们需要了解用户体验的相关知识和理论,以便在设计中更好地考虑到用户需求。 一、了解用户群体 在进行网站设计之前,我们需要了解我们网站的目标用户群体是谁,适合哪些人群使用。这个过程中需要了解用户的特征和行为偏好,可以通过进行市场调研以及记录访问数据等方式来获得。 二…

    css 2023年6月10日
    00
  • js实现背景图自适应窗口大小

    下面是“js实现背景图自适应窗口大小”的完整攻略: 1. 确定背景图的样式 在实现背景图自适应窗口大小的过程中,我们需要先给背景图指定一些样式。最常用的方法是将背景图作为页面的一部分,利用CSS中的background属性进行样式设置。 body { background: url("bg.jpg") no-repeat center c…

    css 2023年6月9日
    00
  • 关于ol和ul的padding和margin默认值

    关于ol和ul元素的padding和margin默认值,我们可以从以下几个方面进行探讨: 1. ol和ul元素的默认样式 在浏览器中,ol和ul元素默认具有以下样式: ol { display: block; list-style-type: decimal; margin-top: 1em; margin-bottom: 1em; margin-left:…

    css 2023年6月9日
    00
  • jQuery实现单击按钮遮罩弹出对话框效果(1)

    下面是详细的攻略: jQuery实现单击按钮遮罩弹出对话框效果(1) 1. 准备工作 在开始之前,我们需要引入jQuery库,以及编写HTML和CSS代码。具体来说,我们需要以下三部分代码: 1.1 引入jQuery库 在编写jQuery代码之前,需要先从官方网站(https://jquery.com/)下载jQuery库,并在HTML文件中引入。常见的引入…

    css 2023年6月10日
    00
  • jQuery实现仿美橙互联两级导航菜单的方法

    下面我将详细讲解怎样用 jQuery 实现仿美橙互联两级导航菜单的方法。 1. 实现思路 仿美橙互联的两级导航菜单主要的实现思路是: 鼠标移动到一级菜单上,展开二级菜单; 鼠标离开导航菜单区域,隐藏所有二级菜单; 鼠标移动到其他一级菜单上时,隐藏当前展开的二级菜单,并展开新的二级菜单。 我们可以使用 jQuery 来实现上述功能,主要使用的方法有mouseo…

    css 2023年6月11日
    00
  • Angular模版驱动表单的使用总结

    当初版面极少,我使用文章“Angular模版驱动表单的使用总结”做详细讲解。这篇文章提供了对Angular模版驱动表单的全面概述,并提供了该系统的使用技巧和示例。 什么是Angular模版驱动表单 Angular模版驱动表单是Angular框架中的一种机制,它允许我们使用指令和元素属性创建表单控件,而不是在代码中硬编码控件。这使得HTML代码更加干净并且易于…

    css 2023年6月9日
    00
  • 规范HTML代码可以节省修改代码的时间

    HTML是网页的基础,它的规范化对于整个网站的可维护性至关重要。以下是规范HTML代码可以节省修改代码的时间的攻略: 1.选择合适的标签和语义 在编写HTML代码时应该尽量选择合适的标签和语义。一个良好的语义结构可以使网页更加易于理解,并且可以让搜索引擎更好地理解网页内容,从而提高网页的排名。 例如,在文章标题中应该使用<h1>标签,而不是其他标…

    css 2023年6月10日
    00
  • JS组件Bootstrap导航条使用方法详解

    JS组件Bootstrap导航条使用方法详解 Bootstrap是一个流行的前端框架,为开发Web应用程序提供了大量的组件和工具。其中,导航条是一个非常重要的组件,它可以帮助用户快速浏览网站的不同部分。本文将详细讲解Bootstrap导航条的使用方法。 首先导入Bootstrap库 导航条是Bootstrap库的一部分,因此首先需要导入Bootstrap库。…

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