CSS – Transition

前言

在之前的笔记 CSS – W3Schools 学习笔记 (3) 就有讲过 CSS Transitions.

它是用来做 animation 的. 这篇补上使用时的一些细节.

 

什么时候放 ?

有个 div width 100px

<div class="target">target</div>
.target {
  border: 2px solid red;
  width: 100px;
}

hover 的时候 width change to 300px

.target:hover {
  width: 300px;
  transition-property: width;
  transition-duration: 1s;
  transition-timing-function: ease-in;
}

当 hover 的时候, 修改 width, 同时给予它 transition 逻辑.

CSS – Transition

 

把 transition 逻辑放到 hover 是可以的, 但是注意结尾的时候, 到 mouse leave 的时候 width 恢复到 100px 同时 transition 也移除了, 所以退回的动作没有 animation. 

从这个例子可以看出来 Transition 的 work flow, 当 element 有 transition 属性时, 修改 CSS 就会有 animation. 如果没有就不会出现 animation. 

所以呢, 比较常见的做法是一开始就给元素 transition 属性. 后续就操作其它 CSS 属性就可以了. 

如果是要复杂一些的 animation, 比如有 2 step 的, 动态多一点的, 那么建议之间用 JS 的 animation 更直观. 

 

JS Listen to Transition Event

transitionrun, transitionstart, transitioncancel, transitionend

run 是一开始就跑的, 比 start 还早. 

cancel 是当 animation 没有结束, 但是属性被又修改了.

参考: HTMLElement: transitionend event

CSS – Transition

 

上一篇:CSS: transition


下一篇:CSS: 旋转360 transition