国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

前端每日實戰(zhàn):127# 視頻演示如何用純 CSS 創(chuàng)作一個圓環(huán)旋轉(zhuǎn)錯覺動畫

Pines_Cheng / 3478人閱讀

摘要:效果預(yù)覽按下右側(cè)的點擊預(yù)覽按鈕可以在當(dāng)前頁面預(yù)覽,點擊鏈接可以全屏預(yù)覽。可交互視頻此視頻是可以交互的,你可以隨時暫停視頻,編輯視頻中的代碼。接下來設(shè)置多個方塊的動畫效果。

效果預(yù)覽

按下右側(cè)的“點擊預(yù)覽”按鈕可以在當(dāng)前頁面預(yù)覽,點擊鏈接可以全屏預(yù)覽。

https://codepen.io/comehope/pen/oPWJNj/

可交互視頻

此視頻是可以交互的,你可以隨時暫停視頻,編輯視頻中的代碼。

請用 chrome, safari, edge 打開觀看。

https://scrimba.com/p/pEgDAM/cbvPWHM

源代碼下載

每日前端實戰(zhàn)系列的全部源代碼請從 github 下載:

https://github.com/comehope/front-end-daily-challenges

代碼解讀

定義 dom,容器中包含 10 個

子元素,每個
子元素內(nèi)還有一個 子元素:

定義容器尺寸:

.container {
    width: 17em;
    height: 17em;
    font-size: 16px;
}

定義子元素的尺寸,和容器相同:

.container {
    position: relative;
}

.container div {
    position: absolute;
    width: inherit;
    height: inherit;
}

在子元素的正中畫一個黃色的小方塊:

.container div {
    display: flex;
    align-items: center;
    justify-content: center;
}

.container span {
    position: absolute;
    width: 1em;
    height: 1em;
    background-color: yellow;
}

增加讓小方塊左右移動的動畫效果,動畫時長還會在后面用到,所以定義成變量:

.container span {
    --duration: 2s;
    animation: move var(--duration) infinite;
}

@keyframes move {
    0%, 100% {
        left: calc(10% - 0.5em);
    }

    50% {
        left: calc(90% - 0.5em);
    }
}

用貝賽爾曲線調(diào)整動畫的時間函數(shù),使小方塊看起來就像在左右兩側(cè)跳來跳去:

.container span {
    animation: move var(--duration) cubic-bezier(0.6, -0.3, 0.7, 0) infinite;
}

增加小方塊變形的動畫,使它看起來有下蹲起跳的擬人效果:

.container span {
    animation: 
        move var(--duration) cubic-bezier(0.6, -0.3, 0.7, 0) infinite,
        morph var(--duration) ease-in-out infinite;
}

@keyframes morph {
    0%, 50%, 100% {
        transform: scale(0.75, 1);
    }

    25%, 75% {
        transform: scale(1.5, 0.5);
    }
}

至此,完成了 1 個方塊的動畫。接下來設(shè)置多個方塊的動畫效果。

為子元素定義 CSS 下標變量:

.container div:nth-child(1) { --n: 1; }
.container div:nth-child(2) { --n: 2; }
.container div:nth-child(3) { --n: 3; }
.container div:nth-child(4) { --n: 4; }
.container div:nth-child(5) { --n: 5; }
.container div:nth-child(6) { --n: 6; }
.container div:nth-child(7) { --n: 7; }
.container div:nth-child(8) { --n: 8; }
.container div:nth-child(9) { --n: 9; }

旋轉(zhuǎn)子元素,使小方塊分布均勻地在容器的四周,圍合成一個圓形:

.container div {
    transform: rotate(calc(var(--n) * 40deg));
}

設(shè)置動畫延時,現(xiàn)在看起來就像是一群小方塊貼著一個圓的內(nèi)邊線在旋轉(zhuǎn)了(但實際上沒有任何元素在做旋轉(zhuǎn)運動,大腦感覺到的旋轉(zhuǎn)是一種錯覺):

.container span {
    animation-delay: calc(var(--duration) / 9 * var(--n) * -1);
}

最后,為小方塊上色:

.container span {
    background-color: hsl(calc(var(--n) * 80deg), 100%, 70%);
}

大功告成!

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/113893.html

相關(guān)文章

  • 前端每日實戰(zhàn)127# 視頻演示何用 CSS 創(chuàng)作一個圓環(huán)旋轉(zhuǎn)錯覺動畫

    摘要:效果預(yù)覽按下右側(cè)的點擊預(yù)覽按鈕可以在當(dāng)前頁面預(yù)覽,點擊鏈接可以全屏預(yù)覽。可交互視頻此視頻是可以交互的,你可以隨時暫停視頻,編輯視頻中的代碼。接下來設(shè)置多個方塊的動畫效果。 showImg(https://segmentfault.com/img/bVbgq95?w=400&h=302); 效果預(yù)覽 按下右側(cè)的點擊預(yù)覽按鈕可以在當(dāng)前頁面預(yù)覽,點擊鏈接可以全屏預(yù)覽。 https://cod...

    Ethan815 評論0 收藏0
  • 前端每日實戰(zhàn) 2018 年 9 月份項目匯總(共 26 個項目)

    摘要:過往項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月份發(fā)布的項目前端每日實戰(zhàn)專欄每天分解一個前端項目,用視頻記錄編碼過程,再配合詳細的代碼解讀,是學(xué)習(xí)前端開發(fā)的活的參考書 過往項目 2018 年 8 月份項目匯總(共 29 個項目) 2018 年 7 月份項目匯總(共 29 個項目) 2018 年 6 月份項目匯總(...

    lavnFan 評論0 收藏0
  • 前端每日實戰(zhàn) 2018 年 9 月份項目匯總(共 26 個項目)

    摘要:過往項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月份發(fā)布的項目前端每日實戰(zhàn)專欄每天分解一個前端項目,用視頻記錄編碼過程,再配合詳細的代碼解讀,是學(xué)習(xí)前端開發(fā)的活的參考書 過往項目 2018 年 8 月份項目匯總(共 29 個項目) 2018 年 7 月份項目匯總(共 29 個項目) 2018 年 6 月份項目匯總(...

    whatsns 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<