HTML5和CSS3怎么实现灵动的动画选项卡切换效果

  介绍

这篇文章将为大家详细讲解有关HTML5 + CSS3怎么实现灵动的动画选项卡切换效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

设计师给了一个选项卡切换的效果图。虽然是一个很小的功能,但是前端工程师在实现的时候还是有很多细节需要注意。我写了一个演示给大家参考。

最终实现效果如下:

 HTML5 + CSS3怎么实现灵动的动画选项卡切换效果

为了gif动画能够展示细节,我将动画时间延长到3秒了

代码分享地址:http://runjs.cn/detail/h3dqt3td

<强>实现思路

间隔竖线,因为不是顶天立地的,所以不能用边框。我准备用伪元素实现。

只有3个竖线,但是有4个,这个简单,可以用:没有(第一个孩子)选择器来选择。

切换的背景颜色变化,因为想要有从小到大的效果,因此,也不能直接使用背景颜色实现,我也准备用伪元素实现。

如果用伪元素的大小来控制,计算会比较复杂,因此,我想用不必阴影来实现。

好,大体就是如此了,下面开始写代码,如下:

<强> HTML代码

,, & lt; div 类=癿"比;   ,,,& lt; ul 类=皌ab"比;   ,,,,,& lt; li> & lt; https://www.yisu.com/zixun/a  href=" ">导航1   <李> 导航2   <李> 导航3   <李> 导航4      

上面的代码结构是之前已经写好的,我看可以,就不做任何调整了。没有什么累赘的代码。

<强> CSS代码

.m {,保证金:100 px;,}   .tab {,宽度:400 px;,保证金:,0,汽车;,边界:,1 px  solid  # ddd;,高度:,40 px;, text-align:,中心;,行高:,40 px;,背景:,# fff;, border - radius:, 10 px;,溢出:,隐藏,,}   .tab  li {,浮动:左;,宽度:,100 px;,位置:,相对;,溢出:,隐藏,,}   .tab 李:以前,.tab 李:之后,,.tab  li  a  {, -webkit-transition: all  0.25 s  ease-in-out;,转型:,all  0.25 s  ease-in-out;,}   .tab 李:以前,.tab 李:after {,内容:““,,显示:,块,,}   .tab 李:没有(:第一个孩子):after {,背景:# ddd;,高度:,20 px;,宽度:,1 px;,左:,0;,:,10 px;,位置:,绝对的,,}   .tab  li  a {,显示:块;,位置:,相对,,z - index,, 2,,颜色:,# 000;,字体大小:,14 px;,}   .tab 李:before {,宽度:0;,高度:,0;,:,50%;,左:,50%;,z - index:, 1;,位置:,绝对的,,}   .tab 李:hover  a {,颜色:# fff;,}   .tab 李:徘徊:before {,不必:0,0,0,100 px  # 36 bc99;,}   .tab 李:hover  +,李:之后,,.tab 李:徘徊:after {,高度:0;,:,20 px;,}

<强>代码分析:

动画实现非常简单,只要使用过渡属性即可。

控制自己的伪元素和下一个同级元素的伪元素,只需要使用+选择器即可。

其他代码都比较清晰简单,自己分析即可。

实现这个效果还是非常简单的,重点是平时的积累,以及各种参数的灵活搭配。想到实现方法,最终写代码是很快的事情。而且没有什么知识高点在里面。

CSS之所以难,不是你不会,而是不不会去搭配。
,

其实,还是只还原了99%的设计效果,两条线一个在背景里面,一个在背景外面,想要把两条分割线都放到背景里面来,应该如何实现呢?可以思考一下。

安利一下scss。上面的CSS是编译出来的。其实用scss实现非常方便快捷,代码可读性也更高。

演示如下:

.m  {   ,,保证金:100 px;   }   .tab  {   ,,宽度:400 px;保证金:,0,汽车;边界:,1 px  solid  cdd美元;高度:,40 px; text-align:,中心;行高:,40像素;   背景:才能,cff美元;border - radius:, 10 px;溢出:,隐藏;   li {才能   ,,,:浮动,左,宽度:,100 px;位置:,相对;溢出:,隐藏;   ,,,,,,:之后,a  {@include  dz ();}   ,,,,,,:after  {   ,,,,,内容:,““显示:,块;   ,,,}   ,,,,:没有(第一个孩子),{   ,,,,,,:after  {   ,,,,,,,背景:,cdd美元;高度:,20 px;宽度:,1 px;左:,0;:,10 px;位置:,绝对;   ,,,,,}   ,,,}   ,,,a  {   ,,,,,显示:,块;位置:,相对;z - index:, 2,颜色:,c00美元;字体大小:,14 px;   ,,,}   ,,,,:before  {   ,,,,,宽度:,0;高度:,0;:,50%;左:,50%;z - index:, 1;位置:,绝对;   ,,,}   ,,,,:hover  {   ,,,,,a {颜色:,cff美元;}   ,,,,,,:before  {   ,,,,,,,不必:,0,0,0,100 px  $青色;   ,,,,,}   ,,,,,,,+,李:之后,,:after  {   ,,,,,,,身高:,0;:,20 px;   null   null   null   null

HTML5和CSS3怎么实现灵动的动画选项卡切换效果