CSS animations 使得可以将从一个CSS样式配置转换到另一个CSS样式配置。动画包括两个部分:描述动画的样式规则和用于指定动画开始、结束以及中间点样式的关键帧。 ——MDN
transform属性
允许你旋转,缩放,倾斜或平移给定元素。这是通过修改CSS视觉格式化模型的坐标空间来实现的。
最常用:
- 位移
translateX \ translateY - 缩放
scale - 旋转
rotate - 倾斜
skew - 等……
注意:inline 元素不支持transform,需要变成block。
:::success
小技巧:ranslate(-50%,-50%)可以绝对定位元素居中。
:::
translate 位移
.element {transform: translateX(20px);transform: translateY(40px}}.element2 {/*简写*/transform: translate(20px 40px);}
scale 缩放
设定比1大的值使该元素变大,反之比1小的值使该元素变小。
.element {transform: scaleX(2);transform: scaleY(0.5}}.element2 {/*简写*/transform: scale(2, 0.5);}
rotate 旋转
允许单独设置**transform**的旋转属性。
.element {transform: rotate(1 1 1 83deg); /*设置向量旋转*/}.element {transform: rotateX(65deg);}.element {transform: rotateY(22deg);}.element {transform: rotateZ(83deg);}
skew 倾斜
.element {transform: skewX(10deg);}
transition属性
**transition** CSS 属性是以下的一个简写属性。
transition-propertytransition-durationtransition-timing-functiontransition-delay
不是所有的属性都可以过度,如:
display: none—-过渡—->display: blockvisibility:hidden—-过渡—->visibility:visble
语法
.example {ransition : [属性名] [时长] [过度方式] [延迟];}/*也可以一次性进行两个属性过度*/.example2 {ransition : [属性名] [时长] [过度方式] [延迟],[属性名2] [时长2] [过度方式2] [延迟2]}
transition-property
指定应用过渡属性的名称。
值:
none没有过度动画all所有可被动画的属性都表现出过渡动画- 属性名
transition-duration
属性以秒或毫秒为单位指定过渡动画所需的时间。默认值为0s,表示不出现过度动画。
值:
- 单位秒 s、毫秒ms
- 不接受负值
transition-timing-function
用来描述这个中间值是怎样计算的。表示动画过度,补充中间帧。
| 值 | 描述 |
|---|---|
| linear | 匀速 |
| ease | 先慢 - 中间快 - 后慢 |
| ease-in | 加速 |
| ease-out | 减速 |
| cubic-bezier(n,n,n,n)函数 | 自定义速度,该属性可以用工具网站 |
关于过度函数表示
transition-delay
规定了在过渡效果开始作用之前需要等待的时间,即延迟。
值:
- 单位秒 s、毫秒ms
animation属性
animation 有以下属性
animation-name: none /动画名/animation-duration: 0s / 0ms /时长/animation-timing-function: ease (与transition取值相同) /过渡方式/animation-delay: 0s /延迟/animation-iteration-count: 1 /次数/animation-direction: normal /方向/animation-fill-mode: none /填充模式/animation-play-state: running /是否暂停/
语法
animation
animation :[动画名] [时长] [过渡方式] [延迟] [次数] [方向] [填充模式] [是否暂停]
注意:顺序一定要正确!
keyframes
@keyframes 动画名 {from {transform: translateX(0%)}43% {......!important}/*出现!important 被忽略*/to {transform: translateY(100%)}}/*或*/@keyframes 动画名 {0% {transform: translateX(0%)}37%{.........}100% {transform: translateY(100%)}}
如果关键帧中出现 !important 将会被忽略
详细可看MDN文档: @keyframes - animation
