• 主页
  • 归档
  • 分类
  • 照片墙
所有文章 友情链接 关于我

  • 主页
  • 归档
  • 分类
  • 照片墙
  1. 1. transition-property
  2. 2. transition-duration
  3. 3. transition-timing-function
  4. 4. transition-delay
  5. 5. 兼容性

CSS动画(2)-transition

2017-10-12 18:16:24
总字数 718
预计阅读时间 2 分钟

CSS的transition允许CSS的属性值在一定的时间区间内平滑地过渡
这种效果可以在鼠标点击 获得焦点 或对元素的任何改变中触发
并圆滑的以动画效果改变CSS的属性值

语法
transition本身也是一个复合属性 , 主要包含4个属性值

  1. 执行变换的属性 transition-property
  2. 变换延续的时间 transition-duration
  3. 在变换时间内 , 变换的速率变化 transition-timing-function
  4. 变换的延迟时间 transition-delay

对于多组值 , 它们之间使用逗号分隔

transition-property

用来指定哪个CSS属性在变换的过程中应用动画效果
可以取值 none , all 或者具体的属性名称
all代表任何可以实现动画变换的属性 , 在变换时都会应用动画效果 , 它是默认值

transition-duration

用于指定元素转换过程的持续时间 , 单位可以是s或者ms
例如 0.5s , 或者也可以写作 .5s
默认值为0

transition-timing-function

这个属性值的本身是一个贝塞尔曲线
有几个预定义的值 , 或者也可以自定义一个曲线
cubic bezier
如图所示 , 起点和终点也就是P0和P3的位置是固定的
只需要指定P1和P2的坐标 , 即可决定该曲线的曲率变化
曲线上每个点的切线斜率代表在该时间点的变换速率

P1(x1,y1)
P2(x2,y2)
所以自定义贝塞尔曲线的方式就是 cubic-bezier(x1,y1,x2,y2)
当然x的值需要在[0,1]的区间内 , 否则无效
y的值可以超过1或者小于0 , 比如构造一个来回的缓冲效果

贝塞尔曲线

预定义的贝塞尔曲线

  1. ease:(逐渐变慢)默认值,ease函数等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0).
  2. linear:(匀速),linear 函数等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0).
  3. ease-in:(加速),ease-in 函数等同于贝塞尔曲线(0.42, 0, 1.0, 1.0).
  4. ease-out:(减速),ease-out 函数等同于贝塞尔曲线(0, 0, 0.58, 1.0).
  5. ease-in-out:(加速然后减速),ease-in-out 函数等同于贝塞尔曲线(0.42, 0, 0.58, 1.0)

transition-delay

指定一个动画开始的延迟时间 , 默认为0

补充说明 :
在transition当中 , 这4个单属性值其中的每个都是可以省略的
但通常不会省略持续时间 , 因为省略之后就看不到动画的效果了


兼容性

为了兼容旧版本的浏览器 , 我们通常需要给transition属性加上前缀

1
2
3
4
5
6
box {
-moz-transition:color 0.5s ease-in;
-webkit-transition:color 0.5s ease-in;
-o-transition:color 0.5s ease-in;
transition : color 0.5s ease-in;
}

或者也可以使用postcss这种预处理工具 , 来自动添加属性的前缀

  • 前端
  • css
  • 前端杂烩

扫一扫,分享到微信

CSS动画(3)-animation
CSS动画(1)-transform 
© 2024 夏夜梦星辰
鲁ICP备19028444号
Power By Hexo
  • 所有文章
  • 友情链接
  • 关于我
{{searchItem.query}}
标签: 分类:
  • maven
  • 持续集成
  • JMS
  • 线程
  • JavaScript
  • ECMAScript6
  • 单元测试
  • Promise
  • Web Worker
  • 函数
  • prototype
  • 模块化
  • 正则表达式
  • 数据库
  • MongoDB
  • 索引
  • 集群
  • 全文检索
  • flutter
  • dart
  • git
  • 版本控制
  • linux
  • shell
  • docker
  • nginx
  • jenkins
  • opencv
  • vim
  • react
  • react native
  • 前端
  • css
  • HTML5
  • Hexo
  • sass
  • Three.js
  • TypeScript
  • Vue
  • 组件化
  • base64
  • webpack
  • nodejs
  • gulp
  • TensorFlow
  • 机器学习
  • 算法
  • 动态规划
  • 数据结构
  • Java
  • JavaScript
  • MongoDB
  • flutter
  • Git
  • linux
  • react
  • 前端杂烩
  • 男生女生
  • 算法
  • 十年饮冰,难凉热血
  • †少女癌†
  • 猫与向日葵
  • coderfun
  • JENKINS
  • API管理后台
愿你最终能接纳每一面每一种的自己
独自活着便是团圆