亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

CSS 3動(dòng)畫介紹

googollee / 3471人閱讀

摘要:原文譯文一個(gè)初學(xué)者對(duì)動(dòng)畫的介紹譯者現(xiàn)在,越來越多的網(wǎng)站使用了動(dòng)畫,并且形式多樣,如背景視頻等等。先看看效果關(guān)于和動(dòng)畫的介紹動(dòng)畫主要的組件是,這個(gè)規(guī)則就是用來創(chuàng)建動(dòng)畫的。然后,為了使動(dòng)畫生效,需要將和一個(gè)選擇器綁定。元素首先,定義動(dòng)畫的分隔。

原文:A Beginner’s Introduction to CSS Animation

譯文:一個(gè)初學(xué)者對(duì)CSS動(dòng)畫的介紹

譯者:dwqs

現(xiàn)在,越來越多的網(wǎng)站使用了動(dòng)畫,并且形式多樣,如GIF、SVG、WebGL、背景視頻等等。當(dāng)在web中恰當(dāng)使用動(dòng)畫時(shí),它可以給網(wǎng)站注入活力和良好的交互性,給用戶提供額外的一層反饋和體驗(yàn)。

在這篇文章,我將向你介紹CSS動(dòng)畫,隨著瀏覽器對(duì)動(dòng)畫支持的改善,一種高效率的做事方式變得越來越流行??紤]到基礎(chǔ)知識(shí),我將快速建立一個(gè)從正方形變成圓形的動(dòng)畫案例。

先看看效果:http://jsfiddle.net/Web_Code/tchoafyh/embedded/result/

關(guān)于@keyframes和動(dòng)畫的介紹

CSS動(dòng)畫主要的組件是@keyframes,這個(gè)規(guī)則就是用來創(chuàng)建動(dòng)畫的。將@keyframes當(dāng)作是時(shí)間軸的不同階段,在其內(nèi)部,你可以自定義時(shí)間軸的不同階段,每個(gè)階段有不同的CSS聲明。

然后,為了使CSS動(dòng)畫生效,需要將@keyframes和一個(gè)選擇器綁定。最后將會(huì)逐漸解析@keyframes內(nèi)的全部代碼,以階段為劃分,慢慢改變把最初的樣式變成新的樣式。

@keyframes元素

首先,定義動(dòng)畫的分隔。@keyframes的屬性如下:

1、選擇一個(gè)名字(在案例我選擇tutsFade)

2、階段劃分:0%–100%,從0%到100%

3、CSS樣式:你想要在每一個(gè)階段用到的樣式

例如:

@keyframe tutsFade{
    0%{
        opacity:1;
    }
    100%{
        opacity:0;
    }
}


      或者:

@keyframe tutsFade{
     from{
           opacity:1;
     }
     to{
           opacity:0;
     }
}

還有一種簡寫形式:

@keyframe tutsFade{
     to{
           opacity:0;
     }
}

上述代碼將對(duì)元素的透明度應(yīng)用一個(gè)過渡效果:從1到0,三種方式最終的效果相同。

動(dòng)畫

Animation作為一個(gè)選擇器去調(diào)用@keyframes。Animation有很多的屬性:

1、animation-name:@keyframes的名字(例如tutsFade)

2、animation-duration:動(dòng)畫持續(xù)的時(shí)間

3、animation-timing-function:設(shè)置動(dòng)畫的速度特效,可以選擇linear/ease-in/ease/ease-out/ease-in-out/cubic-bezier

4、animation-delay:動(dòng)畫開始之前的時(shí)間延遲

5、animation-iteration-count:動(dòng)畫循環(huán)的次數(shù)

6、animation-direction:規(guī)定動(dòng)畫是否反向輪播,normal是默認(rèn)值,正常播放;alternate表示動(dòng)畫反向輪播

7、animation-fill-mode:規(guī)定動(dòng)畫在播放之前或之后,其動(dòng)畫效果是否可見(none/forwards/backwards/both)

例如:

.element {
  animation-name: tutsFade;
  animation-duration: 4s;
  animation-delay: 1s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
  animation-direction: alternate;
}

簡寫:

.element {
  animation: tutsFade 4s 1s infinite linear alternate;
}
添加私有前綴

需要添加特定瀏覽器的私有前綴以確保最好的瀏覽器支持:chrome&Safari:-webkit-;Firefox:-moz-;Opera:-o-;IE:-ms-
修改如下:

.element {
    -webkit-animation: tutsFade 4s 1s infinite linear alternate;
    -moz-animation: tutsFade 4s 1s infinite linear alternate;
    -ms-animation: tutsFade 4s 1s infinite linear alternate;
    -o-animation: tutsFade 4s 1s infinite linear alternate;
    animation: tutsFade 4s 1s infinite linear alternate;
}

@keyframes也一樣

@-webkit-keyframes tutsFade { /* your style */ }
@-moz-keyframes tutsFade { /* your style */ }
@-ms-keyframes tutsFade { /* your style */ }
@-o-keyframes tutsFade { /* your style */ }
@keyframes tutsFade { /* your style */ }

為了得到更多瀏覽器供應(yīng)商的私有前綴,你可以去http://css3please.com/,查找,上面提供了非常豐富的資源。

多動(dòng)畫

可以添加多個(gè)動(dòng)畫,各個(gè)動(dòng)畫之間用逗號(hào)分隔。

.element {
  animation: tutsFade 4s 1s infinite linear alternate,
             tutsRotate 4s 1s infinite linear alternate;
}
@keyframes tutsFade {
  to {
    opacity: 0;
  }
}
@keyframes tutsRotate {
  to {
    transform: rotate(180deg);
  }
}
方形到圓形的動(dòng)畫教程

利用上面的規(guī)則,我將創(chuàng)建一個(gè)簡單的圖形動(dòng)畫。總共會(huì)有5個(gè)階段,并且在每個(gè)階段都會(huì)對(duì)元素定義不同的Border-radius,rotation和background-color。

1、基本元素
div {
  width: 200px;
  height: 200px;
  background-color: coral;
}
2、聲明Keyframes

創(chuàng)建一個(gè)名為square-to-circle的keyframe元素,包含5個(gè)階段

@keyframes square-to-circle {
  0%  {
    border-radius:0 0 0 0;
    background:coral;
    transform:rotate(0deg);
  }
  25%  {
    border-radius:50% 0 0 0;
    background:darksalmon;
    transform:rotate(45deg);
  }
  50%  {
    border-radius:50% 50% 0 0;
    background:indianred;
    transform:rotate(90deg);
  }
  75%  {
    border-radius:50% 50% 50% 0;
    background:lightcoral;
    transform:rotate(135deg);
  }
  100% { 
    border-radius:50%;
    background:darksalmon;
    transform:rotate(180deg);
  }
}
3、應(yīng)用動(dòng)畫

將定義的動(dòng)畫應(yīng)用之前的div

div {
  width: 200px;
  height: 200px;
  background-color: coral;
  animation: square-to-circle 2s 1s infinite alternate; 
}
4、使用時(shí)間函數(shù)和添加私有前綴

最后要添加的一個(gè)動(dòng)畫屬性是animation-timing-function,它對(duì)動(dòng)畫元素的速度、加速和減速進(jìn)行定義。一個(gè)類似的工具是:CSS Easing Animation Tool,可以使用它來計(jì)算時(shí)間函數(shù)。

在案例中,我給動(dòng)畫添加了一個(gè)cubic-bezier函數(shù)。

div {
  width: 200px;
  height: 200px;
  background-color: coral;
  animation: square-to-circle 2s 1s infinite cubic-bezier(1,.015,.295,1.225) alternate; 
}

為了保證最好的瀏覽器支持,還必須添加私有前綴(沒有添加前綴的代碼如下)

   div {
      width: 200px;
      height: 200px;
      background-color: coral;
      animation: square-to-circle 2s .5s infinite cubic-bezier(1,.015,.295,1.225) alternate;
    }


@keyframes square-to-circle {
  0%  {
    border-radius:0 0 0 0;
    background:coral;
    transform:rotate(0deg);
  }
  25%  {
    border-radius:50% 0 0 0;
    background:darksalmon;
    transform:rotate(45deg);
  }
  50%  {
    border-radius:50% 50% 0 0;
    background:indianred;
    transform:rotate(90deg);
  }
  75%  {
    border-radius:50% 50% 50% 0;
    background:lightcoral;
    transform:rotate(135deg);
  }
  100% { 
    border-radius:50%;
    background:darksalmon;
    transform:rotate(180deg);
  }
}

這個(gè)在FireFox顯示會(huì)有點(diǎn)異常,為了在FireFox有絕佳的顯示效果,可以給div添加如下樣式

outline: 1px solid transparent;

原文首發(fā):http://www.ido321.com/1282.html

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/110974.html

相關(guān)文章

  • CSS3 animation介紹

    摘要:關(guān)于貝塞爾曲線和可以參照上一篇,和類似,不多贅述。單位是秒或毫秒。默認(rèn)值是表示正常播放動(dòng)畫。默認(rèn)值表示動(dòng)畫播完后,恢復(fù)到初始狀態(tài)。例如的動(dòng)畫庫,里面設(shè)計(jì)出的貝塞爾曲線能讓動(dòng)畫效果非常逼真。下一篇將介紹一些常見實(shí)用的動(dòng)畫效果。 本篇介紹的animation屬性和傳統(tǒng)的動(dòng)畫制作一樣,能控制幀的每一步,制作出更強(qiáng)大的動(dòng)畫效果。 和其他CSS3屬性類似,animation包含很多子屬性,我們一...

    孫淑建 評(píng)論0 收藏0
  • SVG 動(dòng)畫精髓

    摘要:如圖這種動(dòng)畫是怎么實(shí)現(xiàn)呢直接看代碼吧這么多,是不是感覺有點(diǎn)懵逼。該值表示每個(gè)動(dòng)畫間使用自定的貝塞爾變換曲線。該值用來具體定義動(dòng)畫執(zhí)行時(shí)的貝塞爾曲線。當(dāng)然,里面的貝塞爾曲線組數(shù)為整個(gè)動(dòng)畫幀數(shù)。 TL;DR 本文主要是講解關(guān)于 SVG 的一些高級(jí)動(dòng)畫特效,比如 SVG 動(dòng)畫標(biāo)簽,圖形漸變,路徑動(dòng)畫,線條動(dòng)畫,SVG 裁剪等。 例如:路徑動(dòng)畫 showImg(https://segmentf...

    whinc 評(píng)論0 收藏0
  • 2019年了,你還不會(huì)CSS動(dòng)畫?

    摘要:然而我發(fā)現(xiàn)都年了,還有很多同學(xué)不會(huì)動(dòng)畫。指定動(dòng)畫計(jì)時(shí)函數(shù),即動(dòng)畫的速度曲線,默認(rèn)是。指定動(dòng)畫播放狀態(tài),正在運(yùn)行或暫停。除了默認(rèn)值外,還有另外個(gè)值,表示,動(dòng)畫完成后,元素狀態(tài)保持為最后一幀的狀態(tài)。今年我面試了很多同學(xué),只要看到簡歷上寫熟練掌握CSS3的,我都會(huì)問問動(dòng)畫相關(guān)知識(shí)。然而我發(fā)現(xiàn):都 2019 年了,還有很多同學(xué)不會(huì) CSS 動(dòng)畫。 我經(jīng)常愛問的一個(gè)問題是,實(shí)現(xiàn)如下的效果: 即,一個(gè)...

    Carbs 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<