溫馨提示×

溫馨提示×

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

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

純CSS怎么實現(xiàn)水波紋的電池充電動畫特效

發(fā)布時間:2022-04-18 13:55:11 來源:億速云 閱讀:377 作者:zzz 欄目:web開發(fā)

本篇內(nèi)容主要講解“純CSS怎么實現(xiàn)水波紋的電池充電動畫特效”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“純CSS怎么實現(xiàn)水波紋的電池充電動畫特效”吧!

純CSS怎么實現(xiàn)水波紋的電池充電動畫特效

前置知識:

要想完成這個特效,就必須要知道一些前置的屬性,簡單介紹一下吧:

animation 、transformfilter 這三個就不多做介紹了,基本上所有的動畫都會用到這兩個屬性。

box-shadow

box-shadow:陰影

用法:box-shadow: h-shadow v-shadow blur spread color inset;

  • h-shadow:必填的,水平陰影的位置,允許負值

  • v-shadow:必需的。垂直陰影的位置。允許負值

  • blur:模糊距離

  • spread:陰影的大小

  • color:陰影的顏色

  • inset:從外層的陰影(開始時)改變陰影內(nèi)側(cè)陰影

border-radius

border-radius:設(shè)置圓角

可設(shè)置四個值,與 margin、padding 的使用方法一樣

也就是每個半徑的四個值的順序是:左上角右上角,右下角,左下角

  • 如果省略左下角,右上角是相同的。

  • 如果省略右下角,左上角是相同的。

  • 如果省略右上角,左上角是相同的。

linear-gradient()

linear-gradient():漸變,用于創(chuàng)建一個表示兩種或多種顏色線性漸變的圖片。

用法:background-image: linear-gradient(direction, color-stop1, color-stop2, ...);

  • direction: 用角度值指定漸變的方向(或角度),制定方向

  • color...: 依次有什么顏色變?yōu)槭裁搭伾?/p>

容器

我們設(shè)置兩個 div ,一個座位底部的容器,上面弄個小蓋子,主要通過border-radius設(shè)置下周邊的圓角,并且加入box-shadow加入陰影,增強立體感

純CSS怎么實現(xiàn)水波紋的電池充電動畫特效

充電效果

這里可以使用定位布局,通過top來控制水的位置,top的值越大水越低,top的值越小水越高

我們把水位設(shè)置為80%,同時通過linear-gradient() 來設(shè)置水的一個漸變色:

純CSS怎么實現(xiàn)水波紋的電池充電動畫特效

那么動畫就很簡單了,只需要控制 top值就會造成水的上升,像這樣

純CSS怎么實現(xiàn)水波紋的電池充電動畫特效

這時需要注意的點是:

  • 最上方我們的容器設(shè)置了圓角,所以在動畫到100%的時候,要和容器的圓角一樣

  • 水位在移動,為了增強立體感,可設(shè)置陰影,可以以有個遞進的效果,所以顏色最好稍微變深一點,并且顏色最好偏近

  • 變色還是通過:filter: hue-rotate();這個屬性控制

    .content{ //容器
        border-radius: 15px 15px 5px 5px;
        &::after{
            position: absolute;
            top: 80%;
            background: linear-gradient(to bottom, #7abcff 0%, #00BCD4 44%, #2196F3 100%);
            border-radius: 0px 0px 5px 5px;
            box-shadow: 0 14px 28px rgba(33, 150, 243, 0), 0 10px 10px rgba(9, 188, 215, 0.08);
            animation: change 10s linear infinite;
            filter: hue-rotate(90deg);
        }
    }
    @keyframes change {
          30% {
            box-shadow: 0 14px 28px rgba(0, 150, 136, 0.83), 0px 4px 10px rgba(8, 117, 134, 0.4);
          }
          50%{
            filter: hue-rotate(60deg);
          }
          80% {
            top: 20%;
            border-radius: 0 0 5px 5px;
            box-shadow: 0 14px 28px rgba(6, 136, 153, 0.2), 0 10px 10px rgba(12, 10, 112, 0.08);
          }
          100% {
              top: 0%;
              filter: hue-rotate(0deg);
              border-radius: 15px 15px 5px 5px;
              box-shadow: 0 14px 28px rgba(7, 93, 104, 0), 0 10px 10px rgba(31, 3, 68, 0.4);
          }
        }

純CSS怎么實現(xiàn)水波紋的電池充電動畫特效

水波紋特效

這個特效相信大家都見過,其思想就是在上面的大概位置上設(shè)置背景顏色,用相同的底色覆蓋,

然后用到translate這個屬性,通過轉(zhuǎn)化x、y值,然后通過不停的旋轉(zhuǎn)角度,至于數(shù)值為啥是這個值,我也搞不清楚。。。有知道的小伙伴可以在評論區(qū)留言.

p{ //復(fù)蓋
    border-radius: 45% 47% 44% 42%;
    transform: translate(-50%, 0);
    animation: move 10s linear infinite;
}
@keyframes move {
  100% {
      transform: translate(-50%, -160px)  rotate(720deg);
  }
}

純CSS怎么實現(xiàn)水波紋的電池充電動畫特效

此時,我們發(fā)現(xiàn)這個效果并不太真實,進行多覆蓋兩個,改變旋轉(zhuǎn)值和border-radius的值來設(shè)置水面不重疊,但又有差距的效果

p{
    &:nth-child(2){
      border-radius: 38% 46% 43% 47%;
      transform: translate(-50%, 0) rotate(-135deg);
    }
    &:nth-child(3){
      border-radius: 42% 46% 37% 40%;
      transform: translate(-50%, 0) rotate(135deg);
    }
}

此時的效果就非常真實了

純CSS怎么實現(xiàn)水波紋的電池充電動畫特效

到此,相信大家對“純CSS怎么實現(xiàn)水波紋的電池充電動畫特效”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細節(jié)

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

css
AI