当前位置: 代码迷 >> 综合 >> css动画animation,transition,transform
  详细解决方案

css动画animation,transition,transform

热度:133   发布时间:2023-10-12 17:27:02.0

在页面制作中经常会用到动画效果,就是让元素动起来的效果,我直接将所有能让元素动起来的效果写在这里,供参考使用

一、animation动画

animation 属性是一个简写属性,用于设置六个动画属性:

  • animation-name (动画名称,即在@keyfrom 后面设置的动画名)
  • animation-duration
    • 默认是 0
    • 动画时长,完成动画一共花费的时长
  • animation-timing-function
    • 默认为ease
    • 规定动画的速度曲线
    • 常用linear/ease/ease-in/ease-out/ease-in-out/cubic-bezier(n,n,n,n)
    • n为0 到 1的值
  • animation-delay(定义动画开始前等待的时间)
    • 默认为0
  • animation-iteration-count(规定动画被播放的次数,infinite指的是无限循环)
    • 默认为1
  • animation-direction(规定动画是否在下一周期逆向地播放)
    • 默认normal
    • alternate指的是动画可以轮流反向播放

animate连写的时候,至少有两个属性值动画才能生效,一是动画名animation-name,二是动画完成所需要的时间animation-duration~

animation: name duration timing-function delay iteration-count direction;
例如:
animation: animate_aaa 1s ease 0s infinite alternate;
@keyframes animate_aaa{from{width: 100%;height: 100%;border-color: #ff8f03;}to{width: 200%;height: 300%;border-color: #ffd769;}
}

二、transition动画

transition属性是用来过渡的
transition在设置transition-duration属性的情况下,会产生过渡效果。

transition 的过渡属性与意义

  • transition-property : 过渡效果的CSS 属性名称,如:width等,还可以是all
  • transition-duration : 过渡效果所用的时间
  • transition-timing-function :过渡效果的速度曲线
  • transition-delay :过渡效果的延迟时间

连写:transition: property duration timing-function delay;


transform 属性向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜。
所以,transform属性只对元素进行变换,不会产生过渡效果。

transform要配合transition来使用:transition: transform 0.8s;

  • 移动 translate,参数为距离的数值,包含三种,X轴方向移动,y轴方向移动,x和y轴方向同时移动
    • translate(X)
    • translate(Y)
    • translate(X,Y)
  • 旋转rotate,参数为角度
    • rotate(20deg)
    • rotate3d(x,y,z,angle)
    • rotateX(angle)
    • rotateY(angle)
    • rotateZ(angle)
  • Scale缩放
    • scale(1) 参数小于1为缩小,大于1为放大
  • 倾斜skew(angle)
  • perspective(n) 为 3D 转换元素定义透视视图

什么时候用transition,什么时候用animation

虽然在实际问题中自然而然就会选择合适的一种,但是我们还是会纠结到底什么时候该用哪个!
我在后来做了很多动画的案例
在这总结出自己的看法

  • 一般,固定路线的动画用animation来做,因为@keyfrom是写死的动画路线
  • 而transition是在改变中使用的,比如为transform的参数值做变量处理

你只要记住这两点就够了,希望各位攻克所有难题,工作顺利~~

  相关解决方案