属性 | 描述 | CSS |
---|---|---|
transition | 简写属性,用于在一个属性中设置四个过渡属性。 | 3 |
transition-property | 规定应用过渡的 CSS 属性的名称。默认值all。 | 3 |
transition-duration | 定义过渡效果花费的时间。默认是 0。 | 3 |
transition-timing-function | 规定过渡效果的时间曲线。默认是 ease。 | 3 |
transition-delay | 规定过渡效果什么时候开始。默认是 0 | 3 |
额外提一下两个属性:javascript
transition-property
all: 全部属性, none: 也就是不生效。
固然也不是全部的属性均可以来动效, 具体的参考Certain CSS properties can be animated
不支持的动画属性:background-image, float, display, position,visibility。css
深刻理解CSS过渡transition有一个简单分类的总结,固然相对全面仍是Certain CSS properties can be animatedhtml
颜色: color background-color border-color outline-color 位置: backround-position left right top bottom 长度: [1]max-height min-height max-width min-width height width [2]border-width margin padding outline-width outline-offset [3]font-size line-height text-indent vertical-align [4]border-spacing letter-spacing word-spacing 数字: opacity visibility z-index font-weight zoom 组合: text-shadow transform box-shadow clip 其余: gradient
transition-timing-function
三阶贝塞尔曲线函数, 这里只要两个控制点的值。
至于什么是贝塞尔曲线,能够看看贝塞尔曲线扫盲。
内置了几个简单的:java
一、ease:逐渐变慢, 贝塞尔曲线(0.25, 0.1, 0.25, 1.0)
二、linear:匀速,linear 贝塞尔曲线(0.0, 0.0, 1.0, 1.0)
三、ease-in:加速,ease-in 贝塞尔曲线(0.42, 0, 1.0, 1.0)
四、ease-out:减速,ease-out贝塞尔曲线(0, 0, 0.58, 1.0)
五、ease-in-out:加速而后减,ease-in-out 贝塞尔曲线(0.42, 0, 0.58, 1.0)git
更多的能够在这里得到在线贝塞尔。
github
这里的取值还有一种steps函数,能够参考深刻理解CSS过渡transition函数
依旧是两个总写法。 注意transition-property和其余属性数量不一致的状况。post
/* 方法一*/ .demo{ transition-property: width, height; transition-delay: 500ms; transition-timing-function: linear; transition-duration: 2000ms; } /* 方法二*/ .demo{ transition: width 2000ms linear 500ms, height 2000ms linear 500ms }
const transition = document.querySelector('.transition'); transition.addEventListener('transitioncancel', () => { console.log('Transition canceled'); });
Transition事件的触发次数是非复合的过渡属性的个数, 好比width, height同时变换,那么就是两次。
还比较有趣的事, 好比hover到某元素的时候,开始变换,没变换结束,你就离开。
变换效果会倒着来。下面的demo,就会看到。动画
效果有:spa
思路
思路:
思路:
CSS Transitions
Using CSS transitions
TransitionEventSection
css-transitions | Can I Use
深刻理解CSS过渡transition