CSS动画实现的三种方式

CSS动画

CSS动画就是元素从一种样式过渡到另一种样式的过程。常见的动画效果很多,比如:平移、缩放、旋转等。CSS实现动画的方式有以下几种:

  1. transition:实现渐变动画
  2. transform:实现缩放、平移等效果
  3. animation:实现自定义动画
transition
  • property:填写需要变化的CSS属性
  • duration:完成过渡效果需要的时间单位(s或者ms)
  • timing-function:完成效果的速度曲线,比如:linear(匀速变化)、ease(从慢到快再到慢)、ease-in(慢慢变快)、esae-out(慢慢变慢)等
  • delay:动画效果的延迟触发时间

并不是所有属性都能过渡,比如display: none 到 display: block

transform
  • translate:位移
  • scale:缩放
  • rotate:旋转
  • skew:倾斜

一般配合transition过度使用。transform不支持inline元素,使用之前把它变为block

animation
属性描述属性值
animation-duration指定动画完成的一个周期所需要的时间,单位s或ms,默认为0
animation-timing-function完成动画的速度曲线linear、ease、ease-in、ease-out、ease-in-out
animation-delay指定动画的延迟时间,即动画何时开始,默认为0
animation-iteration-count指定动画的次数,默认为1
animation-direction指定动画播放的方向,默认为normalnormal、reverse、alternate、alternate-reverse
animation-fill-mode指定动画的填充模式,默认为noneforwards、backwards、both
animation-play-state指定动画播放状态,正在运行或暂停。默认是 runningrunning、pauser
animation-name指定动画的名称

CSS动画只需要定义一些关键帧,其余的帧由浏览器根据计时函数插值计算出来。使用@ketframes定义关键帧,例如我们想要让元素旋转一圈,只需要定义开始和结束两帧即可:

@keyframes rotate{
  from{
    transform: rotate(0deg)
  }

  to{
    transform: rotate(360deg)
  }
}

也可以使用百分比来刻画帧

@keyframes rotate{
    0%{
        transform: rotate(0deg);
    }
    50%{
        transform: rotate(180deg);
    }
    100%{
        transform: rotate(360deg);
    }
}
  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值