放肆青春的博客
首页
前端
算法
网络
面试
技术
后端
运维
杂项
数据库
工具
网址
电脑
个人
文章
  • 分类
  • 标签
  • 归档
github (opens new window)
gitee (opens new window)

放肆青春

一个前端菜鸟的技术成长之路
首页
前端
算法
网络
面试
技术
后端
运维
杂项
数据库
工具
网址
电脑
个人
文章
  • 分类
  • 标签
  • 归档
github (opens new window)
gitee (opens new window)
  • 前端

    • 前端 概览
    • 前端汇总

    • front 博文

    • front 项目总结

    • front 高级

    • front tools

  • vue

    • vue 概览
    • vue 汇总

    • vue 博文

    • vue 项目总结

    • vue 高级

  • html

    • html 概览
    • html 汇总

    • html 博文

  • css

    • css 概览
    • css 汇总

    • css 博文

      • css 隔离
      • css 选择器
      • css 布局
      • css 盒子
      • css 文档流
      • css BFC
      • css 回流重绘
      • css 居中
      • css margin合并和塌陷
      • css hack
      • css 行内和块级元素
      • css 单位
      • css 动画
        • transition 过渡
          • 属性值
        • transform 转换
          • rotate 旋转
          • skew 倾斜
          • scale 缩放
          • translate 移动
          • matrix 矩阵变形
        • animation
        • css 动画问题
          • transition 和 animation 的区别
          • css 动画和 js 动画的区别
      • css 硬件加速
      • 伪类/伪元素
      • flex布局
      • grid布局
      • table布局
      • 雪碧图/精灵图
    • sass

    • less

  • js

    • javascript 概览
    • JS 汇总

    • ES6

    • JS 博文

    • JS 工具

  • node

    • node 概览
    • node 汇总

    • node 框架

    • node 博文

  • react

    • react 概览
    • react 汇总

    • react 博文

    • react 高级

  • 微信小程序

    • 微信小程序 概览
    • 微信小程序总结
    • 微信小程序文章
    • 微信小程序 博文

    • 微信小程序 高级

  • 微信公众号

    • 微信公众号 概览
    • 微信公众号总结
    • 微信公众号文章
  • 多端开发

    • 多端开发
    • dsbridge 概览
    • jsbridge 概览
    • webview
    • uniapp

      • uniapp 概览
    • taro

      • taro 概览
    • flutter

      • flutter 概览
      • flutter 环境搭建
    • electron

      • electron 概览
  • front
放肆青春
2021-03-23

css 动画

css 动画的种类:

  1. transition 实现渐变动画

  2. transform 转变动画

  3. animation 实现自定义动画

# transition 过渡

# 属性值

  • 语法:transition: property duration timing-function delay;

  • 值

    • transition-property 指定 CSS 属性的 name,transition 效果
    • transition-duration transition 效果需要指定多少秒或毫秒才能完成
    • transition-timing-function 指定 transition 效果的转速曲线
    • transition-delay 定义 transition 效果开始的时候

# transform 转换

# rotate 旋转

  • rotate(angle) 定义 2D 旋转,在参数中规定角度。
  • rotate3d(x,y,z,angle) 定义 3D 旋转。
  • rotateX(angle) 定义沿着 X 轴的 3D 旋转。
  • rotateY(angle) 定义沿着 Y 轴的 3D 旋转。
  • rotateZ(angle) 定义沿着 Z 轴的 3D 旋转。

# skew 倾斜

  • skew(x-angle,y-angle) 定义沿着 X 和 Y 轴的 2D 倾斜转换。
  • skewX(angle) 定义沿着 X 轴的 2D 倾斜转换。
  • skewY(angle) 定义沿着 Y 轴的 2D 倾斜转换。

# scale 缩放

  • scale(x[,y]?) 定义 2D 缩放转换。
  • scale3d(x,y,z) 定义 3D 缩放转换。
  • scaleX(x) 通过设置 X 轴的值来定义缩放转换。
  • scaleY(y) 通过设置 Y 轴的值来定义缩放转换。
  • scaleZ(z) 通过设置 Z 轴的值来定义 3D 缩放转换。

# translate 移动

  • translate(x,y) 定义 2D 转换。
  • translate3d(x,y,z) 定义 3D 转换。
  • translateX(x) 定义转换,只是用 X 轴的值。
  • translateY(y) 定义转换,只是用 Y 轴的值。
  • translateZ(z) 定义 3D 转换,只是用 Z 轴的值。

# matrix 矩阵变形

  • matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵。
  • matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) 定义 3D 转换,使用 16 个值的 4x4 矩阵。

参考:https://www.jianshu.com/p/956d54376338 (opens new window)

# animation

animation-fill-mode: forwards; /*该属性让动画停留在最后一帧*/

# css 动画问题

# transition 和 animation 的区别

  1. transition 需要去触发比如:点击事件、鼠标移入事件;而 animation 可以配合 @keyframe 可以不触发事件就触发这个动画

  2. transition 触发一次播放一次;而 animation 则是可以设置很多的属性,比如循环次数,动画结束的状态等等;

  3. transition 是过渡,是样式值的变化的过程,只有开始和结束;animation 其实也叫关键帧,通过和 keyframe 结合可以设置中间帧的一个状态;

# css 动画和 js 动画的区别

  1. 复杂度不同

css 动画相对简单,js 动画相对复杂

  1. 兼容性不同

CSS 动画 有兼容性问题,而 JS 大多时候没有兼容性问题

  1. 灵活性不同

CSS 在动画控制上不够灵活,JavaScript 动画控制能力很强,可以在动画播放过程中对动画进行控制:开始、暂停、回放、终止、取消都是可以做到的。

  1. 性能不同

css 动画相对于优一些,css 动画通过 GUI 解析,js 动画需要经过 j s 引擎代码解析,然后再进行 GUI 解析渲染。

  1. 适用场景不同

对于一些复杂控制的动画,使用 javascript 会比较靠谱。而在实现一些小的交互动效的时候,就多考虑考虑 CSS 吧

更新时间: 2/10/2022, 7:21:32 PM
css 单位
css 硬件加速

← css 单位 css 硬件加速→

最近更新
01
前端权限管理
02-24
02
vue2指令
02-24
03
vue2 hook
02-24
更多文章>
Theme by Vdoing | Copyright © 2019-2022 放肆青春
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式