过渡是很常见的需求,今天我们就过渡进行一些整理。会整理一些常见的过渡,从 css 基本过渡行为,到框架的过渡。
CSS 过渡
CSS 过渡是一种变化行为,我们只需要指定初始化 CSS 属性,和终止 CSS 属性,以及如何触发过渡的属性我们就能创建一个 CSS 过渡,注意,CSS过渡是不需要中间的计算的,过渡的计算CSS提供了一些固定的属性,当然我们也可以自定义,例如使用贝塞尔曲线来自定义。
触发过渡
重点就是变化,我们如何触发过渡,触发过渡的本质就是,改变 CSS 属性。CSS 中触发 CSS 的变化有很多方式:
- css 伪类:hover等改变 class/style
- dom 操作:改变class/style
- 数据驱动:改变 class/style
我们发现都是通过改变样式来实现的过渡。
CSS 过渡属性
- transition 是一个集合属性
- transition-delay 过渡延迟
- transition-duration 过渡持续时间
- transition-property 过渡属性
- transition-timing-function 过渡曲线函数
- ease:(逐渐变慢)默认值
- linear:(匀速)
- ease-in:(加速)
- ease-out:(减速)
- ease-in-out:(先加速后减速)
- ease-in-out:(先加速后减速)
- 事件
- transitionstart 过渡开始事件
- transitionrun 过渡运动事件
- transitionend 过渡结束事件
常见的过渡
- fade 渐隐渐现
- slide 滑动效果
- slide up
- slide down
- slide left
- slide right
jQuery 过渡
jQuery 没有单独的抽象出过渡效果,因为 jQuery 是草dom的。但是 jQuery 抽象出了一些效果:
- fadeIn()
- fadeOut()
- fadeTo()
- fadeToggle()
- slideDown()
- slideToggle()
- slideUp()
Vue
Vue 过渡系统: cn.vuejs.org/v2/guide/tr…
React
React 没有在核心代码中实现过渡,但是提供了一个良好的库 Transition, TransitionGroup.
Angular
Angular 动画:angular.cn/guide/anima…
Svelte 过渡
Svelte 过渡: svelte.dev/docs#svelte…