CSS Transitions 让我们不写一行 JavaScript 代码也能实现过渡动画。

举一个最简单的例子:

a:link {color: hsl(36,50%,50%);
}
a:hover {color: hsl(36,100%,50%);
}

当鼠标悬浮于某个链接时,它的颜色会从 hsl(36,50%,50%) 瞬间变化为 hsl(36,100%,50%)。 这个变化因为没有过渡,会显得特别生硬。

有了 transition 属性,我们便可以实现一个非常平滑的过渡效果,它也是一个简写属性,取值由以下部分构成:

  • transition-property - 目标属性
  • transition-duration - 过渡时长
  • transition-timing-function - 缓动函数:匀速、加速以及减速。
  • transtion-delay - 动画触发的等待时长

我们把上面的 CSS 稍作修改:

a:link {transition: all .5s linear 0;color: hsl(36,50%,50%);
}
a:hover {color: hsl(36,100%,50%);
}

动画效果就有了,当鼠标悬浮在链接上时,颜色会发生渐变,非常平滑。

这里的 transition 表示所有的属性在半秒内完成线性过渡,没有延迟。

注意,这么多渐变属性中,只有 transition-duration 是必需的,其它都有默认值:

  • transition-property: all;
  • transition-timing-function: ease;
  • transition-delay: 0;

所以最简单的渐变可以写成 transition: .5s.

特定属性

虽然 “all” 可以让渐变作用于所有属性,但我们仍然可以指定某个属性,例如 transition: color .5s ease 0 将只作用于颜色属性。

也可以同时指定多个属性,中间用逗号隔开:

a:link {transition: .5s;transition-property: color, font-size;
}

还可以同时指定多条渐变规则:

a:link {transition: color .5s, font-size 2s;
}

缓动

transition-timing-function 类似于数学表达式 velocity = func(time),它会根据时间来改变动画速度,一般称作「差值函数」。

它的变化是一个三次贝塞尔曲线,取值有 easelinear 两类。

  • ease 表示先加速后减速。可拆分成 ease-inease-out
  • linear 表示匀速。

cubic-bezier.com 很好了演示了这两种动画。

CSS高级篇——过渡动画相关推荐

  1. 【动画消消乐】纯CSS加载/过渡动画学习笔记合集(1-50)

    Hello!小伙伴! 首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍一下 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿一只|C++选手|学生 简介:因C语言结识编程,随后转入 ...

  2. CSS高级篇——圆角

    圆角会让生硬的背景图变得更圆润,可以起到很好的修饰作用. 边框半径 border-radius 属性可以让盒子(box)的四个角变成圆角,这个属性名有误导性,其实没有边框依然可以变圆角. #maril ...

  3. CSS高级篇——渐变 (gradient)

    配合 background 和 background-image 可以实现线性(linear)和辐射(radial)渐变. 线性渐变 linear-gradient 可以实现线性渐变. backgro ...

  4. CSS高级篇——属性选择器 (attribute selectors)

    属性选择器可以定位到拥有某个属性的元素,甚至可以精确到具体的属性值. 属性匹配 选择器后面跟一个方括号,方括号内是属性名: abbr[title] { border-bottom: 1px dotte ...

  5. Vue中的基础过渡动画原理解析

    前言 在日常开发中 动画是必不可少的一部分 不仅能让元素直接的切换显得更加自然 同时也能极大的增强用户体验 因此 在Vue之中也提供了非常强大的关于动画这方面的支持 Vue不仅支持用CSS来写一些过渡 ...

  6. [iOS]过渡动画之高级模仿 airbnb

    注意:我为过渡动画写了两篇文章: 第一篇:[iOS]过渡动画之简单模仿系统,主要分析系统简单的动画实现原理,以及讲解坐标系.绝对坐标系.相对坐标系,坐标系转换等知识,为第二篇储备理论基础.最后实现 M ...

  7. ElementUI过渡动画篇

    ElementUI过渡动画篇 element官方提供的过渡动画并不能很好的满足使用.我尝试过几种过渡动画的设置方式,最终选择了Animate.css. 一.使用方法? 引入 引入: npm insta ...

  8. css3-12 transition+css或transform实现过渡动画

    css3-12 transition+css或transform实现过渡动画 一.总结 一句话总结:首先要设置hover后的效果,然后在transition里面指定执行哪些样式和执行时间为多长. 1. ...

  9. css 入场动画_React系列十四 React过渡动画

    在开发中,我们想要给一个组件的显示和消失添加某种过渡动画,可以很好的增加用户体验. 当然,我们可以通过原生的CSS来实现这些过渡动画,但是React社区为我们提供了react-transition-g ...

最新文章

  1. 在使用stl中的ifstream出错时如何快速排错?
  2. SAP 对HU做货物移动报错-Only 0 serial numbers entered instead of 30 -
  3. 18不使用委托实现能自动侦测车距的智能汽车
  4. java 笔记(3)多态 容易理解
  5. zookeeper的安装及配置教程(步骤详尽)
  6. HTML文档的三大构成元素,构成基础结课小结 为什么三大构成是设计的基础课程...
  7. chart控件做实时曲线显示_基于GDI+技术开发工业仪表盘控件
  8. c++ 删除文件_win7 系统电脑C盘哪些文件可以删除掉?
  9. 【BZOJ】3396: [Usaco2009 Jan]Total flow 水流 (最大流)
  10. 伦茨8400变频器面板按键说明_国产变频器按键的各个功能
  11. 物联lot是什么意思_什么是物联网,物联网(lOT)简介
  12. Echarts 柱状图上方显示数值
  13. 关于js中的then()
  14. B. Coloring Rectangles
  15. 5步完成编写Mysql的shell脚本
  16. OpenGL绘制旋转六面体并纹理贴图
  17. 新版Edge浏览器怎么长截图?
  18. 几种数据源的配置方式
  19. 有赞数据中台建设实践
  20. WINCC使用OPC UA与S7-1200通讯

热门文章

  1. mongodb 基本概念
  2. C++入门--构造函数、拷贝构造函数、析构函数
  3. 酷派7728软件安装到外置SD卡上的方法,也适用于联想s850e等
  4. Java 求解完全二叉树的节点个数
  5. 交通标志识别系统-tensorflow项目
  6. oracle牙间刷,60支OraCleen智能牙刷送送送!
  7. 仿射密码(代换密码)
  8. SQL Server 添加与删除主键约束
  9. 爱,死亡和机器人(Love,DeathRobots)
  10. PHP闭包(Closure)初探_豆浆油条