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实现鼠标移入时图片的放大效果及缓慢过渡效果的示例代码

    实现鼠标移入时图片的放大效果及缓慢过渡效果需要用到CSS的transform和transition属性。以下是具体的步骤: 在HTML中,需要用标签嵌入图片。例如: <img src="example.jpg" alt="example image"> 为这个标签添加CSS样式。首先,需要设置img标签的w…

    css 2023年6月10日
    00
  • select元素中设置padding效果的方法

    设置select元素的padding效果是通过CSS来实现的,方法如下: 1.通过padding属性设置可以使用padding属性来设置select元素的padding效果,示例代码如下: select{ padding: 10px; } 上述代码设置了select元素的上下左右padding值均为10像素。 2.通过box-sizing属性设置使用box-…

    css 2023年6月9日
    00
  • 使用CSS来扩展增强Input Range的示例

    使用CSS可以对Input Range进行扩展和增强,以下是基本的攻略步骤。 1. 基本的Input Range样式 首先我们来创建一个基本的Input Range样式,HTML代码如下: <input type="range" min="0" max="100" value="50…

    css 2023年6月10日
    00
  • CSS3的RGBA中关于整数和百分比值的转换

    CSS3的RGBA色彩模式可以使用整数或百分比值来定义每个颜色通道的值,如下所示: /* 定义RGBA颜色,参数值分别是红、绿、蓝和透明度 */ background-color: rgba(255, 0, 0, 0.5); 其中,255是红色通道的整数值,0是绿色通道的整数值,0是蓝色通道的整数值,0.5是透明度的百分比值,表示50%不透明度。 但是,在某…

    css 2023年6月10日
    00
  • JS+CSS实现感应鼠标渐变显示DIV层的方法

    下面是JS+CSS实现感应鼠标渐变显示DIV层的方法的完整攻略。 方案说明 该方案是通过鼠标hover事件触发,实现鼠标滑过一个元素时另一个元素的渐变显示效果,需要借助JS和CSS两种技术,并且兼容主流浏览器的PC端和移动端。具体实现过程如下: 在HTML中编写两个DIV层,一个DIV层作为触发元素,另一个DIV层作为目标元素; 在CSS中为两个DIV层分别…

    css 2023年6月10日
    00
  • Css Reset(复位)的简单介绍

    CSS Reset(复位)的简单介绍 在编写CSS样式时,不同的浏览器可能会有不同的默认样式,这会导致网页在不同浏览器中显示效果不一致。因此,我们需要进行CSS Reset(复位)来重置这些默认样式。 什么是CSS Reset? CSS Reset是一种将浏览器默认样式表重置为我们期望样式的方法。它会将各个元素的margin、padding、font-siz…

    css 2023年6月9日
    00
  • 详解中文字体在CSS样式中font-family对应的英文名称

    关于CSS样式中font-family对应的英文名称,我可以给你讲解一下相关的内容。 在CSS中,可以使用font-family属性来指定字体系列(即字体名称),用于渲染HTML文档中的文字。通常我们使用中文的时候,需要将中文字体写入font-family 属性中并且需要知道其对应的英文名称,因为有的字体名称并不是拼音形式。接下来我们就来详细解释下如何得到中…

    css 2023年6月9日
    00
  • CSS3实现简易版的刮刮乐效果

    下面是CSS3实现简易版的刮刮乐效果的完整攻略: 1. 确定HTML结构 首先,我们需要确定HTML的结构,一般来说一个简单的刮刮乐效果可以采用以下HTML结构: <div class="scratch-card"> <img src="image/bg.jpg" alt="背景图&quot…

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