CSS中過渡(transition)和動(dòng)畫(animation)是兩種實(shí)現(xiàn)頁面動(dòng)態(tài)效果的方法,它們有些許不同。下面我們來詳細(xì)了解一下它們之間的區(qū)別:
/* 過渡示例 */ .box { width: 200px; height: 200px; background-color: red; transition: width 2s; } .box:hover { width: 400px; } /* 動(dòng)畫示例 */ .ball { width: 50px; height: 50px; background-color: blue; position: absolute; animation: bounce 2s infinite; } @keyframes bounce { from { top: 0; } to { top: 100px; } }
首先,過渡是指元素的某些屬性在一段時(shí)間內(nèi)發(fā)生變化,從而實(shí)現(xiàn)平滑的過渡效果。過渡一般是通過設(shè)置元素的transition屬性來實(shí)現(xiàn)的。在上面的例子中,當(dāng)鼠標(biāo)放在.box上時(shí),它的寬度會(huì)在2秒內(nèi)從200px增加到400px。
相比之下,動(dòng)畫是指元素在一段時(shí)間內(nèi)連續(xù)變化,從而實(shí)現(xiàn)動(dòng)態(tài)效果。動(dòng)畫一般是通過設(shè)置元素的animation屬性來實(shí)現(xiàn)的。在上面的例子中,.ball塊會(huì)在2秒內(nèi)無限往上彈跳。
另外,過渡能夠控制的屬性較少,比如寬度、高度、背景顏色等。而動(dòng)畫可以控制的屬性更多,包括位置、形狀、顏色、透明度等等。
總的來說,過渡和動(dòng)畫都可以實(shí)現(xiàn)元素的動(dòng)態(tài)效果,但它們的使用場(chǎng)景有所不同。過渡適用于簡(jiǎn)單的變化,比如按鈕的hover效果;而動(dòng)畫適用于更加復(fù)雜的動(dòng)態(tài)效果,比如菜單的下拉效果。