CSS3ÌtransitionvpeBÅAj[VðµÄݽ
±ÌuOÅàÐÁ»èÆgÁÄ¢éCSSÅÌanimationB\¡XÅ·ªA±êàñ²×½èµÂÂgÁÄ¢éÌÅA×µ½±Æ𫾵Ĩ«Ü·B
¡ñÍ»ÌÅàtransitionðgÁÄAj[VðÝÄÝæ¤Æv¢Ü·B
webkitÆOperaAFirefox4Å®ì
2011N1»ÝACSS3ÌAj[Vª®ì·éÌÍwebkitÌSafariÆChromeA»êÆOperaÆFirefox4Å®ìµÜ·iIE¢mFjB½¾µA»ê¼êÌuEUÅx_[vtBbNXiÚªêjªÈ¢Æ®ìµÜ¹ñB
ܸÍfð
ܸÍÈPÉAubNªå«Èéf©çB
¡CSS
.demo div{
background-color:#0000ff;
width:100px;
height:100px;
color:#ffffff;
/*ȺAj[VÌÝèiÍx_[utBbNXj*/
--transition-property:background-color,width,height;
--transition-duration: 2s;
--transition-delay: 0s;
--transition-timing-function: ease;
}
/*Aj[V³¹½ÛÌ®ì
.demo div:hover{
background-color:#ff00ff;
width:450px;
height:200px;
color:#000000;
}
divÉ:hoverð¯ĨèÜ·ÌÅAIEÌêͱê·ç®ìµÈ¢Å·B
úÅÍAwiªÂnFA¡ª150pxA³100pxAeLXgÍB¡ñÌfÅÍA:hoverðwèµÄ¢éÌÅA»ÌvfÌãÉ}EXðæ¹éÆAj[Vª®ìµÜ·BÏ»ãÍwiªsNA450pxA³200pxAeLXgªÉÏ»µÜ·B
¡f
»ê¼êÌuEUÉí¹½{^ðµÄvtBbNXðÏXµ½ãÉA¢lpÌãÉ}EXðæ¹ÄÝľ³¢BvtBbNXð¯é{^ð³È¢Æ®«Ü¹ñµAÎuEUÅÍȯêÎAj[VÅ®ìµÜ¹ñB¢lpÌãÉ}EXð̹¸ÆàAá±pxªÏíèÜ·B
Aj[Vª®©È¢Â«Å êÎA·®É嫳ÆFªÏíèÜ·ªAAj[VªLøÉÈêÎA1b̬³ÅAj[VµÈªç:hoverÉwèµ½lÉÏ»µÜ·B
.demo div{
--transition-property:background-color,width,height;
--transition-duration: 1s;
--transition-timing-function: ease;
--transition-delay: 0s;
}
±ÌubNÉ}EXð̹ÄËi:hoverźÌlpªLÑÜ·j
³ÄAevpeBð»ê¼êÝÄ¢«Üµå¤B
transition-property
transitionðKp·évpeBiAj[Vð³¹évpeBjðÝèµÜ·Bbackground-colorâcolorÈÇÌvfðÝèµÄ¨±ÆÅAwèµ½vfªAj[V·éæ¤ÉÈèÜ·B
±ÌvpeBð¢½ÛÍAwèµ½ªÌvf¾¯ª®æ¤ÉÈèÜ·B©ªÍ±ÌvpeBð¢ÄAvfðwèµYêÄu êH®©È¢æIHvÆQÄĵܤ±Æª½¢Å·BBB²ÓðB
¿ÈÝÉAÏ»³¹çêévfͺLÌÊèÉÈèÜ·B
Property Name | Type |
---|---|
background-color | color |
background-image | only gradients |
background-position | percentage, length |
border-bottom-color | color |
border-bottom-width | length |
border-color | color |
border-left-color | color |
border-left-width | length |
border-right-color | color |
border-right-width | length |
border-spacing | length |
border-top-color | color |
border-top-width | length |
border-width | length |
bottom | length, percentage |
color | color |
crop | rectangle |
font-size | length, percentage |
font-weight | number |
grid-* | various |
height | length, percentage |
left | length, percentage |
letter-spacing | length |
line-height | number, length, percentage |
margin-bottom | length |
margin-left | length |
margin-right | length |
margin-top | length |
max-height | length, percentage |
max-width | length, percentage |
min-height | length, percentage |
min-width | length, percentage |
opacity | number |
outline-color | color |
outline-offset | integer |
outline-width | length |
padding-bottom | length |
padding-left | length |
padding-right | length |
padding-top | length |
right | length, percentage |
text-indent | length, percentage |
text-shadow | shadow |
top | length, percentage |
vertical-align | keywords, length, percentage |
visibility | visibility |
width | length, percentage |
word-spacing | length, percentage |
z-index | integer |
zoom | number |
¦øpFCSS Transitions Module Level 3 Properties from CSS
êÍuEUÉæÁÄͤܮìµÈ¢Æ©àHܾ¢ØÈÌÅA¢ë¢ëµÄݽ¢Æv¢Ü·B
ãÌvfÌêð¿åÁƽߵÄÝܵå¤
¡Opacityf »ÌP
:hoverÅvf𼧾ɵܷB
.demo3:hover div{
opacity:0.3;
}
}EXð̹ÄËi:hoverÅ®ìj
1s Opacity
±êðpositionâwiÈÇÆgÝí¹½ç[I[o[Æ©àÂ\Å·ËB
¡Opacityf »ÌQ
positionÅvfðñÂdËÄA:hoverÅãÌvfðopacityÅÁµÜ·B
div.demo4front{
position:absolute;
z-index:2
}
div.demo4back{
position:absolute;
z-index:1
}
.demo4:hover div.demo4front{
opacity:0;
}
}EXð̹ÄËi:hoverÅ®ìj
1s Opacity
±±ªXÉ©¦Ä«Ü·EEE
¡positionf
:hoverÅvfª¶©çEÉÚ®µÜ·B
.demo5:hover div{
left:320px;
}
}EXð̹ÄËi:hoverÅ®ìj
1s Left
transition-duration
transitionÌÏ»ÌÔðwèµÜ·B±ÌvpeBªÈ¢Ætransitionª®ìµÜ¹ñBlÍ0.5sâ1sÈÇAsÆ¢¤PÊÅwèµÜ·B1sÅ1bÅ·Blªå«¢ÙÇäÁèÏ»µAlª¬³¢ÙÇÏ»µÜ·B
¡Ôf
ºÌGAÉ}EXðæ¹éÆÉ éQÂÌubNª¡ÉLÑÜ·Bãª0.5bÅAºªTb©¯ÄAj[VµÜ·B
}EXð̹ÄËi:hoverÅ®ìj
0.5s
5s
äÁèAj[V³¹½¢Ílð嫵ÄÝľ³¢B
¡Ôf2
ãÌfÅÍ¡ÉLεÄÝܵ½ªA¶©çEÖÌÚ®ÅàÔwèÉæéÏ»ð©ÄÝܵå¤
}EXð̹ÄËi:hoverÅ®ìj
0s
1s
2s
3s
4s
5s
0b©ç5bÜÅAPbÝÅubNðpÓµ®©µÄÝܵ½B0bÍAj[V¹¸Ú®·éæ¤Å·BÜARÅ·æËB0bÅ·©çB
transition-timing-function
transitionÌÏ»¬xðwè·é±ÆªÅ«Ü·Bêè̬xÅÏ»³¹½èAÅAÅãxÈÇ̬xðwèÅ«Ü·B
wèoélÍȺÌpÉÈÁĢܷB
ease | ç©É |
linear | êè¬x |
ease-in | äÁ訬 |
ease-out | ¬¨äÁè |
ease-in-out | äÁ訬¨äÁè |
cubic-bezier | Aj[VÌÏ»Ìdûðwè |
¡¬xf
»ê¼ê̬xð©ÄÝܵå¤B¡ñÍÇêàRbÅÌÏ»wèÅ·Bcubic-bezierÍ(0,1,1,0)ðwèB
}EXð̹ÄËi:hoverÅ®ìj
ease
linear
ease-in
ease-out
ease-in-out
cubic-bezier
cubic-bezierÅ(0,1,1,0)ðwèµ½çAÈñ¾©ïÈ®«ÉiÎj
transition-delay
transitionÌÏ»ªnÜéÔðwè·é±ÆªÅ«Ü·Blªå«¢ÙÇAÏ»·éÜÅÔª©©èÜ·B
¡xf
»ê¼êÌJnÌ^C~OÌ·ð©ÄÝܵå¤B¡ñàSRbÅÌÏ»wèÅ·B®ìJnÌ^C~OªPb¸Âá¢Ü·B
}EXð̹ÄËi:hoverÅ®ìj
0s
1s
2s
3s
4s
5s
ÜÆßÄLq
±±ÜÅྵ½vpeBÍÜÆßÄLq·é±ÆªÅ«Ü·B
durationÌÔ¾¯ªLqµÄ êÎAj[VµÜ·B
Lqá
div.demo9 div{
--transition: 1s ease-in-out 0s;
}
»ÝÌOpera¾ÆpÛÍAj[VµÈ¢ÁۢŷËB
}EXð̹ÄËi:hoverÅ®ìj
Shorthand DEMO
vpeB²ÆLq
ÜÆßÄLqÌÛÅAvpeB²ÆÉwèðª¯éÛÍAvpeB²ÆÉR}ÅæØéKvª èÜ·BAj[V³¹½¢vpeBÆdurationÌw辯ª êήìµÜ·B
div.demo9 div{
--transition: width 1s ease-in-out 0s,
height 1s ease 1s,
background-color 1s ease 0s;
}
ãÌfð©éÆí©éÌÅ·ªAvpeB²ÆÉdelayðϦéÆAdelayÌÔ²ÆÅvpeBÌÏ»ªÏíèÜ·B
¯¶vfðLqµ½ÛÍãëÉ¢½àeÅ㫳êÄOÉLqµ½àeÍ®ìµÜ¹ñB
}EXð̹ÄËi:hoverÅ®ìj
Shorthand DEMO2
¢ë¢ëµÄ¢ÄCâ½±Æ
¡ñ¢ë¢ëµÄ¢ÄCâ½ñÅ·¯ÇAuEUÉæÁÄÍAAj[VµÈ¢vfà¢ë¢ë éæ¤Å·BAj[VµÄ¢é©àµêÈ¢¯ÇA êHÁÄv¤æ¤ÈÌàiz-indexÆ©jBOpera¾ÆpÛªAj[VµÈ¢ÁۢŷµB»êÆ
»êÆFirefox4Ìvr [ð¡ñWindowsÅÅÝÄݽÌÅ·ªAAj[V^ÁÅÁÄA}EXzC[ÅÌXN[ÁĵȢæ¤ÈciC̹¢¾Á½ç·ÝܹñjB»êÆÜÆßÄV[gnhA±êà¤Ü®©È¢HLqû@ª«¢Ì©È c±êÍ¡ãà`FbNµÄÝÜ·B
ÆÜA¢ë¢ëµÄÝı»í©éÁÄ̪ èÜ·ËB
¡ñÍtransitionÌݵÄݽÌÅ·ªAÍà¤êÂÌanimationð½ßµÄÝæ¤Æv¢Ü·B