transition
åºçº¿
广æ³å¯ç¨
*
èª 2015å¹´9æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
* æ¤ç¹æ§çæäºé¨åçæ¯æç¨åº¦å¯è½ææä¸åã
transition CSS 屿§æ¯ transition-propertyãtransition-durationãtransition-timing-function å transition-delay çä¸ä¸ªç®å屿§ã
å°è¯ä¸ä¸
transition: margin-right 2s;
transition: margin-right 2s 0.5s;
transition: margin-right 2s ease-in-out;
transition: margin-right 2s ease-in-out 0.5s;
transition:
margin-right 2s,
color 1s;
transition: all 1s ease-out;
<section id="default-example">
<div id="example-element">Hover to see<br />the transition.</div>
</section>
#example-element {
background-color: #e4f0f5;
color: #000;
padding: 1rem;
border-radius: 0.5rem;
font: 1em monospace;
width: 100%;
transition: margin-right 2s;
}
#default-example:hover > #example-element {
background-color: #909;
color: #fff;
margin-right: 40%;
}
è¿æ¸¡å¯ä»¥ä¸ºä¸ä¸ªå
ç´ å¨ä¸åç¶æä¹é´åæ¢çæ¶åå®ä¹ä¸åçè¿æ¸¡ææãæ¯å¦å¨ä¸åç伪å
ç´ ä¹é´åæ¢ï¼åæ¯ :hoverï¼:active æè
éè¿ JavaScript å®ç°çç¶æååã
è¯æ³
/* Apply to 1 property */
/* property name | duration */
transition: margin-right 4s;
/* property name | duration | delay */
transition: margin-right 4s 1s;
/* property name | duration | timing function */
transition: margin-right 4s ease-in-out;
/* property name | duration | timing function | delay */
transition: margin-right 4s ease-in-out 1s;
/* Apply to 2 properties */
transition:
margin-right 4s,
color 1s;
/* Apply to all changed properties */
transition: all 0.5s ease-out;
/* Global values */
transition: inherit;
transition: initial;
transition: unset;
transition屿§å¯ä»¥è¢«æå®ä¸ºä¸ä¸ªæå¤ä¸ª CSS 屿§çè¿æ¸¡ææï¼å¤ä¸ªå±æ§ä¹é´ç¨éå·è¿è¡åéã
æ¯ä¸ªå屿§è½¬æ¢é½æè¿°äºåºè¯¥åºç¨äºåä¸ªå±æ§ç转æ¢ï¼æç¹æ®å¼allånoneï¼ãè¿å
æ¬ï¼
-
é¶æä¸ä¸ªå¼ï¼è¡¨ç¤ºè½¬æ¢åºéç¨ç屿§ãè¿å¯è½æ¯ä»¥ä¸ä»»ä½ä¸ç§ï¼
- å
³é®å
none - å
³é®å
all - å½å CSS 屿§ç
<custom-ident>ã
- å
³é®å
-
é¶æä¸ä¸ª
<single-transition-timing-function>å¼è¡¨ç¤ºè¦ä½¿ç¨çè¿æ¸¡å½æ° -
é¶ï¼ä¸æä¸¤ä¸ª
<time>å¼ãå¯ä»¥è§£æä¸ºæ¶é´ç第ä¸ä¸ªå¼è¢«åé ç»transition-durationï¼å¹¶ä¸å¯ä»¥è§£æä¸ºæ¶é´ç第äºä¸ªå¼è¢«åé ç»transition-delayã
请æ¥çâå¦ä½å¤çâ以äºè§£å½transition屿§çå¼ä¸ªæ°è¶
è¿å¯ä»¥æ¥æ¶çå¼çä¸ªæ°æ¶è¯¥å¦ä½å¤çãç®èè¨ä¹ï¼å½transition屿§çå¼ä¸ªæ°è¶
è¿å¯ä»¥æ¥æ¶çå¼çä¸ªæ°æ¶ï¼å¤ä½çå¼é½ä¼è¢«å¿½ç¥æï¼ä¸åè¿è¡è§£æã
æ åè¯æ³
transition =
<single-transition>#
<single-transition> =
[ none | <single-transition-property> ] ||
<time> ||
<easing-function> ||
<time> ||
<transition-behavior-value>
<single-transition-property> =
all |
<custom-ident>
<easing-function> =
<linear-easing-function> |
<cubic-bezier-easing-function> |
<step-easing-function>
<transition-behavior-value> =
normal |
allow-discrete
<linear-easing-function> =
linear |
<linear()>
<cubic-bezier-easing-function> =
ease |
ease-in |
ease-out |
ease-in-out |
<cubic-bezier()>
<step-easing-function> =
step-start |
step-end |
<steps()>
<linear()> =
linear( [ <number> && <percentage>{0,2} ]# )
<cubic-bezier()> =
cubic-bezier( [ <number [0,1]> , <number> ]#{2} )
<steps()> =
steps( <integer> , <step-position>? )
<integer> =
<number-token>
<step-position> =
jump-start |
jump-end |
jump-none |
jump-both |
start |
end
示ä¾
âä½¿ç¨ CSS è¿æ¸¡â䏿ä¸è¿å å«äºå 个 CSS è¿æ¸¡ç¤ºä¾ã
è§è
| è§è |
|---|
| CSS Transitions Module Level 1> # transition-shorthand-property> |
| åå§å¼ | 该ç®åæå¯¹åºçæ¯ä¸ªå±æ§ï¼
|
|---|---|
| éç¨å ç´ | all elements, ::before and ::after pseudo-elements |
| æ¯å¦æ¯ç»§æ¿å±æ§ | å¦ |
| 计ç®å¼ | 该ç®åæå¯¹åºçæ¯ä¸ªå±æ§ï¼
|
| å¨ç»ç±»å | Not animatable |