CSS實(shí)現(xiàn)動(dòng)畫的方式是通過CSS3的某些特性,可以在不使用JavaScript的情況下實(shí)現(xiàn)非常流暢的動(dòng)畫效果。下面介紹幾種實(shí)現(xiàn)CSS動(dòng)畫的方式。
第一種方式是使用CSS3的transition屬性,它可以在元素屬性變化時(shí)自動(dòng)產(chǎn)生動(dòng)畫效果。例如:
.box{ width: 100px; height: 100px; background-color: #f00; -webkit-transition: width 1s ease-in-out; transition: width 1s ease-in-out; } .box:hover{ width: 200px; }
這段代碼定義了一個(gè).box類,當(dāng)鼠標(biāo)懸停在元素上時(shí),元素寬度將過渡到200像素,過渡時(shí)間為1秒,過渡效果為緩進(jìn)緩出(ease-in-out)。
第二種方式是使用CSS3的animation屬性,它可以定義一組關(guān)鍵幀,實(shí)現(xiàn)更加復(fù)雜的動(dòng)畫效果。例如:
.box{ width: 100px; height: 100px; background-color: #f00; animation: slide 2s ease-in-out infinite alternate; } @keyframes slide{ 0%{ transform: translateX(0); } 50%{ transform: translateX(200px); } 100%{ transform: translateX(0); } }
這段代碼定義了一個(gè).box類,應(yīng)用名為slide的動(dòng)畫效果。該動(dòng)畫效果包括三個(gè)關(guān)鍵幀,從0%到50%之間元素向右移動(dòng)200像素,然后從50%到100%之間元素向左恢復(fù)原位。過渡時(shí)間為2秒,過渡效果為緩進(jìn)緩出(ease-in-out),動(dòng)畫無限循環(huán),且交替反向執(zhí)行。
總之,CSS可以實(shí)現(xiàn)非常流暢的動(dòng)畫效果,適合一些簡單的動(dòng)畫場景,而對(duì)于更加復(fù)雜的動(dòng)畫效果,仍需要使用JavaScript實(shí)現(xiàn)。