如何使用純CSS實現冰棍的動畫效果(附代碼)

來源:互聯網
上載者:User
本篇文章給大家帶來的內容是關於如何使用純CSS實現冰棍的動畫效果(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所協助。

效果預覽

原始碼下載

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

代碼解讀

定義 dom,容器中包含 2 個元素:

<div class="ice-lolly">    <div class="flavors"></div>    <div class="stick"></div></div>

置中顯示:

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

繪製出冰棍的外形:

.flavors {    width: 19em;    height: 26em;    font-size: 10px;    border-radius: 8em 8em 1em 1em;}

給冰棍上色:

.flavors {    position: relative;    overflow: hidden;}.flavors::before {    content: '';    position: absolute;    width: 140%;    height: 120%;    background: linear-gradient(        hotpink 0%,        hotpink 25%,        deepskyblue 25%,        deepskyblue 50%,        gold 50%,        gold 75%,        lightgreen 75%,        lightgreen 100%);    z-index: -1;    left: -20%;    transform: rotate(-25deg);}

來一點光照效果:

.flavors::after {    content: '';    position: absolute;    width: 2em;    height: 17em;    background-color: rgba(255, 255, 255, 0.5);    left: 2em;    bottom: 2em;    border-radius: 1em;}

畫出冰棍筷子:

.stick {    position: relative;    width: 6em;    height: 8em;    background-color: sandybrown;    left: calc(50% - 6em / 2);    border-radius: 0 0 3em 3em;}

給冰棍筷子加一點陰影,增加立體感:

.stick::after {    content: '';    position: absolute;    width: inherit;    height: 2.5em;    background-color: sienna;}

讓冰棍的色彩滾動起來:

.flavors::before {    animation: moving 100s linear infinite;}@keyframes moving {    to {        background-position: 0 1000vh;    }}

最後,增加互動效果,當滑鼠移至上方時才播放動畫:

.flavors::before {    animation-play-state: paused;}.ice-lolly:hover .flavors::before {    animation-play-state: running;}

大功告成!

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.