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

yizhihongxing

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日

相关文章

  • 上古世纪农业植被成熟时间与适应气候大汇总

    上古世纪农业植被成熟时间与适应气候大汇总攻略 介绍 此攻略为《上古世纪》游戏中关于农业植被的成熟时间和适应气候的详细汇总,包含多种不同的作物和气候类型,方便玩家在游戏中进行农业种植。 成熟时间 作物 生长时间 成熟时间 小麦 5 天 8 天 玉米 7 天 12 天 薯类 4 天 7 天 水果 3 天 5 天 在游戏中,每一种作物的生长和成熟时间都不同,上述表…

    css 2023年6月10日
    00
  • 小数在各个浏览器的差异及css用小数解析差异解决浏览器兼容性问题

    小数在各个浏览器的差异表现在小数位的精度上,不同浏览器对小数精度的处理可能不一致,这可能会导致在不同浏览器上渲染出不同的结果。CSS中也常使用小数值,例如指定元素的宽度、高度、margin、padding等等。因此,如何解决小数在浏览器之间的兼容性问题是前端开发中需要面对的问题之一。 1. 小数在不同浏览器的差异 在我们指定HTML元素的css属性值时,通常…

    css 2023年6月10日
    00
  • 模仿combox(select)控件,不用为美化select烦恼了。

    下面是针对模仿combox(select)控件的完整攻略: 1. 准备工作 在进行模仿combox(select)控件的过程中,需要先准备好以下工具: HTML CSS JavaScript 同时,在HTML文件中引入jQuery库,用来方便的操作DOM。 2. HTML 布局结构 我们准备使用下面所示的HTML结构来模仿combox(select)控件: …

    css 2023年6月10日
    00
  • CSS first-letter实现首字下沉

    首先,我们需要了解CSS伪元素。CSS伪元素是用于选择在某个元素之前或之后插入的内容,允许我们对文本和元素内部样式进行控制。常见伪元素有:after、:before、:first-letter和:first-line等。 其次,CSS first-letter伪元素是用来选择第一个字母的,可以将其样式设置为不同于其余文本的样式。如果为首字母增加特殊样式,可以…

    css 2023年6月13日
    00
  • CSS3实现背景透明文字不透明的示例代码

    下面是完整的攻略: CSS3实现背景透明文字不透明的示例代码 使用 rgba() 函数 可以使用CSS3 rgba() 函数指定背景颜色,其中第四个参数是颜色的透明度。同样,我们也可以使用 rgba() 函数指定文字颜色的透明度。下面是一个示例代码: .container { background-color: rgba(255, 255, 255, 0.5…

    css 2023年6月9日
    00
  • js实现感应鼠标图片透明度变化的方法

    实现感应鼠标图片透明度变化的方法可以通过JavaScript来实现。在下面的攻略中,我将介绍如何使用JavaScript实现该功能的两个示例。 示例一:基础效果 以下是如何实现鼠标滑过时图片透明度变化的基础效果的代码: <!DOCTYPE HTML> <html> <head> <meta charset=&quot…

    css 2023年6月10日
    00
  • 利用CSS制作3D动画

    制作3D动画是CSS中比较复杂的一个领域,需要借助一些特定属性和技巧。下面我将介绍如何用CSS实现3D动画的完整攻略: 步骤一:设置元素为3D 要创建3D动画,首先应该将元素设置为3D。这可以通过设置transform-style: preserve-3d;来实现。这个属性将自动应用于所有子元素,将它们放置在3D空间中。 步骤二:设置动画效果 CSS的3D动…

    css 2023年6月9日
    00
  • javascript框架设计之浏览器的嗅探和特征侦测

    JavaScript框架设计之浏览器的嗅探和特征侦测 在使用JavaScript编写框架时,我们通常需要根据用户使用的浏览器来进行特殊处理,如使用不同的命令或调用不同的API等等。这时候就需要用到浏览器的嗅探和特征侦测技术。 浏览器嗅探 浏览器嗅探就是通过检查浏览器提供的User-Agent信息来确定用户使用的浏览器类型。在JavaScript中,可以通过n…

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