溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

CSS3動(dòng)畫(huà)的實(shí)現(xiàn)方式

發(fā)布時(shí)間:2021-08-09 10:41:33 來(lái)源:億速云 閱讀:149 作者:chen 欄目:web開(kāi)發(fā)

這篇文章主要講解了“CSS3動(dòng)畫(huà)的實(shí)現(xiàn)方式”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“CSS3動(dòng)畫(huà)的實(shí)現(xiàn)方式”吧!

任務(wù)

我們最近在SeatGeek更新了我們的“跟蹤"圖標(biāo),以匹配我們的新iPhone應(yīng)用程序。 首席設(shè)計(jì)師在PSD中創(chuàng)建了具有不同狀態(tài)的心臟圖標(biāo),并在下面創(chuàng)建了動(dòng)畫(huà):

CSS3動(dòng)畫(huà)的實(shí)現(xiàn)方式

什么是CSS3動(dòng)畫(huà)?

在CSS中,動(dòng)畫(huà)是一種讓元素逐漸改變樣式的效果。 您可以使用@keyframes關(guān)鍵字創(chuàng)建動(dòng)畫(huà),后跟動(dòng)畫(huà)的名稱。

@keyframes heartAnimation {
  /* Animation code goes here */
}

要使動(dòng)畫(huà)跨瀏覽器兼容,您需要使用供應(yīng)商前綴:

@keyframes heartAnimation {
  /* IE 10+ */
}

@-webkit-keyframes heartAnimation {
  /* Safari 4+ */
}

@-moz-keyframes heartAnimation {
  /* Fx 5+ */
}

@-o-keyframes heartAnimation {
  /* Opera 12+ */
}
專門建立的學(xué)習(xí)Q-q-u-n ⑦⑧④-⑦⑧③-零①②  分享學(xué)習(xí)方法和需要注意的小細(xì)節(jié),互相交流學(xué)習(xí),不停更新最新的教程和學(xué)習(xí)技巧(從零基礎(chǔ)開(kāi)始到WEB前端項(xiàng)目實(shí)戰(zhàn)教程,學(xué)習(xí)工具,全棧開(kāi)發(fā)學(xué)習(xí)路線以及規(guī)劃)

但是,對(duì)于本文的其余部分,我將為了空間而排除供應(yīng)商前綴。

下一步是添加動(dòng)畫(huà)效果并確定它們何時(shí)發(fā)生。 您可以使用0%到100%的百分比或使用“from"和“to"關(guān)鍵字來(lái)執(zhí)行此操作,只需使用起始和結(jié)束狀態(tài)的簡(jiǎn)單動(dòng)畫(huà)。 下面是將背景顏色從黃色變?yōu)樗{(lán)色,然后從黃色變?yōu)榫G色變?yōu)樗{(lán)色的示例。

@keyframes colorChange {
  from {background: yellow;}
  to {background: blue;}
}

@keyframes colorChange {
  0% {background: yellow;}
  50% {background: green;}
  100% {background: blue;}
}

創(chuàng)建關(guān)鍵幀后,您可以將動(dòng)畫(huà)稱為CSS屬性。 例如,下面的代碼將運(yùn)行colorChange動(dòng)畫(huà)2次以上,持續(xù)時(shí)間為2秒:

.color-animation {
  animation-name: changeColor;
  animation-iteration-count: 2;
  animation-duration: 2s;
}

/* Shorthand */
.color-animation {
  animation: changeColor 2 2s;
}
計(jì)劃動(dòng)畫(huà)

在看了幾次gif之后,我意識(shí)到它是一個(gè)輕微的收縮,然后擴(kuò)展到比原始尺寸略大的尺寸,然后回到原來(lái)的尺寸。

Heart點(diǎn)擊動(dòng)畫(huà)

使用上面的CSS3關(guān)鍵幀和動(dòng)畫(huà)語(yǔ)法,這里是我用來(lái)在本頁(yè)頂部的gif中制作動(dòng)畫(huà)的代碼。 它使用css變換和屬性來(lái)縮放圖像。

@keyframes heartAnimation {
  0% {transform: scale(1,1)}
  20% {transform: scale(0.9,0.9)}
  50% {transform: scale(1.15,1.15)}
  80% {transform: scale(1,1)}
}

.toggle-animation {
  animation: heartAnimation 0.7s; // no iteration count is needed as the default is 1 time
}

對(duì)于圖像,我使用的是精靈,所以我還需要更改圖像的位置以獲得紅色背景:

.toggle-animation {
  background: url('../images/animation-example-sprite.png') no-repeat -320px 0;
  animation: heartAnimation 0.7s; // no iteration count is needed as the default is 1 times
}
Loading動(dòng)畫(huà)

對(duì)于一個(gè)加載狀態(tài),我讓心臟發(fā)白并且無(wú)限地脈動(dòng)in-and-out。 它還縮小并縮小到原始大小,而不是像上面的heartAnimation代碼那樣在進(jìn)入原始狀態(tài)之前略大于原始大小。 以下是加載狀態(tài)的代碼:

@keyframes loading {
  0% {transform: scale(1,1) }
  50% {transform: scale(0.8,0.8) }
  100% {transform: scale(1,1) }
}

/* Notice the added 'infinite' to is used to make the animation-iteration-count */

.toggle-loading {
  background: url('../images/animation-example-sprite.png') no-repeat -160px 0; // make background white
  animation: loading 1s infinite;
  -webkit-animation: loading 1s infinite;
  -moz-animation: loading 1s infinite;
  -o-animation: loading 1s infinite;
}
查看動(dòng)畫(huà)的演示

下面是我用來(lái)點(diǎn)擊每個(gè)圖標(biāo)時(shí)動(dòng)畫(huà)的JS。 JS添加并刪除了我添加動(dòng)畫(huà)屬性的類。

專門建立的學(xué)習(xí)Q-q-u-n ⑦⑧④-⑦⑧③-零①②  分享學(xué)習(xí)方法和需要注意的小細(xì)節(jié),互相交流學(xué)習(xí),不停更新最新的教程和學(xué)習(xí)技巧(從零基礎(chǔ)開(kāi)始到WEB前端項(xiàng)目實(shí)戰(zhàn)教程,學(xué)習(xí)工具,全棧開(kāi)發(fā)學(xué)習(xí)路線以及規(guī)劃)
$(document).ready(function(){

  $('.animation-1 .image').on('click', function(){
    $(this).toggleClass('toggle-animation');
  });

  $('.animation-2 .image').on('click', function(){
    $(this).toggleClass('toggle-animation-slow');
  });

  $('.animation-3 .image').on('click', function(){
    $(this).toggleClass('toggle-loading');
  });
});

感謝各位的閱讀,以上就是“CSS3動(dòng)畫(huà)的實(shí)現(xiàn)方式”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)CSS3動(dòng)畫(huà)的實(shí)現(xiàn)方式這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI