成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

前端每日實(shí)戰(zhàn):149# 視頻演示如何用純 CSS 創(chuàng)作一個(gè)寶路薄荷糖的動(dòng)畫(huà)

avwu / 2600人閱讀

摘要:可交互視頻此視頻是可以交互的,你可以隨時(shí)暫停視頻,編輯視頻中的代碼。源代碼下載每日前端實(shí)戰(zhàn)系列的全部源代碼請(qǐng)從下載代碼解讀定義,只有個(gè)元素居中顯示定義容器尺寸用偽元素畫(huà)出個(gè)像寶路薄荷糖狀的黑色圓環(huán)接下來(lái)制作動(dòng)畫(huà)效果。

效果預(yù)覽

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

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

可交互視頻

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

請(qǐng)用 chrome, safari, edge 打開(kāi)觀看。

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

源代碼下載

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

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

代碼解讀

定義 dom,只有 1 個(gè)元素:

居中顯示:

body {
    margin: 0;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: silver;
}

定義容器尺寸:

.spinner {
    width: 50vmin;
    height: 50vmin;
    position: relative;
}

before 偽元素畫(huà)出 1 個(gè)像寶路薄荷糖狀的黑色圓環(huán):

.spinner::before {
    content: "";
    position: absolute;
    box-sizing: border-box;
    width: inherit;
    height: inherit;
    border: 12.5vmin solid;
    border-radius: 50%;
}

接下來(lái)制作動(dòng)畫(huà)效果。
設(shè)置透視景深:

body {
    perspective: 400px;
}

讓圓環(huán)在 z 軸上運(yùn)動(dòng):

.spinner::before {
    animation: spin 1.5s ease-in-out infinite both reverse;
}

@keyframes spin {
    0%, 100% {
        transform: translateZ(10vmin);
    }

    60% {
        transform: translateZ(-10vmin);
    }
}

讓圓環(huán)在 z 軸距離較大時(shí)稍稍傾斜:

@keyframes spin {
    0%, 100% {
        transform: translateZ(10vmin) rotateX(25deg);
    }

    60% {
        transform: translateZ(-10vmin);
    }
}

增加縮放效果:

@keyframes spin {
    0%, 100% {
        transform: translateZ(10vmin) rotateX(25deg);
    }

    33% {
        transform: translateZ(-10vmin) scale(0.4);
    }

    60% {
        transform: translateZ(-10vmin);
    }
}

after 偽元素再畫(huà)出一個(gè)白色的圓環(huán),并且讓它的動(dòng)畫(huà)延遲動(dòng)畫(huà)總長(zhǎng)的一半時(shí)間:

.spinner::before,
.spinner::after {
    /*略*/
    animation: spin 1.5s ease-in-out infinite both reverse;
}

.spinner::after {
    border-color: white;
    animation-delay: -0.75s;
}

接下來(lái)制作容器的動(dòng)畫(huà)效果,為了不受子元素動(dòng)畫(huà)的影響,先暫時(shí)屏蔽偽元素的動(dòng)畫(huà)效果。

.spinner::before,
.spinner::after {
    /* animation: spin 1.5s ease-in-out infinite both reverse; */
}

增加容器沿 x 軸旋轉(zhuǎn)的動(dòng)畫(huà)效果,動(dòng)畫(huà)時(shí)間為子元素動(dòng)畫(huà)時(shí)間的2倍:

.spinner {
    animation: wobble 3s ease-in-out infinite;
}

@keyframes wobble {
    0%, 100% {
        transform: rotateX(15deg);
    }
    
    50% {
        transform: rotateX(60deg);
    }
}

增加容器沿 y 軸旋轉(zhuǎn)的動(dòng)畫(huà)效果:

@keyframes wobble {
    0%, 100% {
        transform: rotateX(15deg) rotateY(60deg);
    }
    
    50% {
        transform: rotateX(60deg) rotateY(-60deg);
    }
}

增加容器整體旋轉(zhuǎn)的動(dòng)畫(huà)效果:

@keyframes wobble {
    0%, 100% {
        transform: rotateX(15deg) rotateY(60deg);
    }
    
    50% {
        transform: rotateX(60deg) rotateY(-60deg) rotate(180deg);
    }
}

打開(kāi)子元素的動(dòng)畫(huà)效果,使子元素的動(dòng)畫(huà)效果和容器的動(dòng)畫(huà)效果疊加:

.spinner::before,
.spinner::after {
    animation: spin 1.5s ease-in-out infinite both reverse;
}

最后,使子元素在 3d 空間上運(yùn)動(dòng):

.spinner {
    transform-style: preserve-3d;
}

大功告成!

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

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

相關(guān)文章

  • 前端每日實(shí)戰(zhàn)149# 視頻演示何用 CSS 創(chuàng)作一個(gè)寶路荷糖動(dòng)畫(huà)

    摘要:可交互視頻此視頻是可以交互的,你可以隨時(shí)暫停視頻,編輯視頻中的代碼。源代碼下載每日前端實(shí)戰(zhàn)系列的全部源代碼請(qǐng)從下載代碼解讀定義,只有個(gè)元素居中顯示定義容器尺寸用偽元素畫(huà)出個(gè)像寶路薄荷糖狀的黑色圓環(huán)接下來(lái)制作動(dòng)畫(huà)效果。 showImg(https://segmentfault.com/img/bVbhIKv?w=400&h=300); 效果預(yù)覽 按下右側(cè)的點(diǎn)擊預(yù)覽按鈕可以在當(dāng)前頁(yè)面預(yù)覽,...

    SolomonXie 評(píng)論0 收藏0
  • 前端每日實(shí)戰(zhàn) 2018 年 9 月份項(xiàng)目匯總(共 26 個(gè)項(xiàng)目)

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

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

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

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

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

0條評(píng)論

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