css动画

1. css动画与js动画

css动画:css动画是规则树的改变,在性能上优于js实现的动画,缺点是存在浏览器兼容性问题。
js动画:js通过操作dom元素和对应的样式实现动画,影响到了dom树和规则树,性能消耗较大,但不存在浏览器兼容性问题。

2. css动画的实现方式

css动画常见的实现方式有以下几种:

  1. transition 实现渐变动画
  2. transform 转变动画
  3. animation 实现自定义动画
3. transition(过渡动画)
  1. transition-property:填写需要变化的css属性,默认为all,具体取值如下:
    none 没有属性会获得过渡效果。
    all 所有属性都将获得过渡效果。
    property 定义应用过渡效果的 CSS 属性名称列表,列表以逗号分隔。
  2. transition-duration:完成过渡效果需要的时间单位(s或者ms),默认值为0。
  3. transition-timing-function:过渡效果的速度曲线,默认值为ease,取值如下:
    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 之间的数值。
  4. transition-delay:动画效果的延迟触发时间,默认值为0。

transition合写形式:
transition: transition-property transition-duration transition-timing-function transition-delay;

4. transform

transform默认的属性值是none,常用的属性值如下:

  1. translate:位移,写法有:translate(x,y) || translate3D(x,y,z) || translateX(x) || translateY(y) ||translateZ(z)
  2. scale:缩放,写法有:scale(x[,y]?) || scale3d(x,y,z) || scaleX(x) || scaleY(y) || scaleZ(z)
  3. rotate:旋转,写法有:rotate(angle) || rotate3d(x,y,z,angle) || rotateX(angle) || rotateY(angle) || rotateZ(angle)
  4. skew:倾斜,写法有:skew(x-angle,y-angle) || skewX(angle) || skewY(angle)
  5. perspective:透视,用法:perspective(n)
5. animation

animation可以实现自定义动画,其常见属性如下:

  1. animation-name:规定@keyframes动画的名称。
  2. animation-duration:规定动画完成一个周期所花费的秒或毫秒。默认是 0。
  3. animation-timing-function:规定动画的速度曲线。默认是 “ease”,其取值和过渡的transition-timing-function属性取值一致。
  4. animation-delay:规定动画何时开始。默认是 0。
  5. animation-iteration-count:规定动画被播放的次数。默认是 1。
  6. animation-direction:规定动画是否在下一周期逆向地播放。默认是 “normal”,其取值有:normal、reverse、alternate、alternate-reverse。
  7. animation-fill-mode:属性规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式,默认是 none,其取值有:forwards、backwards、both。
    animation的合写形式:
    animation: animation-name animation-duration [animation-timing-function]? [animation-delay]? [animation-iteration-count]? [animation-direction]?;
xxx.css
// 1. 自定义动画关键帧
@keyframes rotate{
    from{
        transform: rotate(0deg);
    }
    to{
        transform: rotate(360deg);
    }
}
// 2. 使用自定义动画
animation: rotate 2s;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值