CSS动画

CSS动画

CSS里面transition,transform,animation等动画技术的使用

2018-08-26侠课岛    初级拔高       

前端/前端/前端动画技术 20     0     5338

transition

早期要实现动画效果,都是依赖于JavaScript或Flash来完成。但在CSS3中新增加了一个新的模块transition,它可以通过一些简单的CSS事件来触发元素的外观变化,让效果显得更加细腻。通过鼠标的单击、获得焦点,被点击或对元素任何改变中触发,并平滑地以动画效果改变CSS的属性值。

transition 属性用于设置元素两种状态间的过渡动画,是transition-propertytransition-durationtransition-timing-functiontransition-delay四个属性的缩写

transition-property 用于设置动画属性,它来指定过渡或动态模拟的CSS属性,过渡属性只有具备一个中点值的属性(需要产生动画的属性)才能具备过渡效果,默认值为all transition-duration 用于设置动画时长 transition-timing-function 用于设置动画时间函数,参数见下表:

描述
linear 规定以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1))
ease 规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1)
ease-in 规定以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))
ease-out 规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))
ease-in-out 规定以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1))
cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值

transition 动画实战

下面我们利用transition来完成一些基本的动画:

我们先制作一个div,鼠标放到它上面的时候,我们让它宽度增加的同时再改变一下它的颜色:

<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>transition</title>
</head>
<body>
  <div></div>
</body>
</html>
div {
  width: 100px;
  height:60px;
  background-color: #e3e3e3;
  transition: all .3s linear .1s
}

div:hover {
  width: 300px;
  background-color: blue;
}

transition

当前这种transition的写法是代表:默认所有div的属性都会在0.3s的时间内,延时0.1s执行一个线性的(相同速度开始至结束)过渡效果

在刚才的基础上,我们还可以更精细的控制这部分动画,比如:

  1. 我们想让当前的宽度在0.3s内延时0.1s执行一个linear过渡效果的动画,
  2. 我们想让当前的背景色在0.2s内立即执行一个ease-in-out 过渡效果的动画

这样我们只需将transition设置多个属性,具体写法如下:

div {
  width: 100px;
  height:60px;
  background-color: #e3e3e3;
  transition: width .3s linear .1s, background-color .3s ease-in-out .1s
}

div:hover {
  width: 300px;
  background-color: blue;
}

transition动画示例代码

CSS动画进阶(transform)

本教程图文或视频等内容版权归侠课岛所有,任何机构、媒体、网站或个人未经本网协议授权不得转载、转贴或以其他方式复制发布或发表。

评价

20

本课评分:
  •     非常好
难易程度:
  •     适中的
|
教程
粉丝
主页

签到有礼

已签到2天,连续签到7天即可领取7天全站VIP

  • 1
    +2 金币
  • 2
    +3 金币
  • 3
    +5 金币
  • 6
    +7 金币
  • 5
    +6 金币
  • 4
    暖心福利
    自选分类VIP ×1天
  • 7
    惊喜大礼

    自选分类VIP ×3天 +20金币
  • 持续签到 +8 金币

金币可以用来做什么?