通常将两个状态之间的过渡称为隐式过渡,因为开始与结束之间的状态由浏览器决定。CSS 过渡可以决定哪些属性发生动画效果 (明确地列出这些属性),何时开始(设置 delay),持续多久 (设置 duration) 以及如何动画 (定义timing function,比如匀速地或先快后慢)。
同时应当留意这种情形,在插入元素(如 .appendChild())或改变属性 display: none 后立即使用过渡,元素将视为没有开始状态,始终处于结束状态。简单的解决办法,改变属性前用 window.setTimeout() 延迟几毫秒。
CSS 过渡由简写属性 transition 定义是最好的方式,可以避免属性值列表长度不一,节省调试时间。transition 让 JavaScript 效果更平滑
transition: 属性名称<property> 时长<duration> 节奏<timing-function> 延迟<delay>