您好,登錄后才能下訂單哦!
本篇內容主要講解“純CSS怎么實現水波紋的電池充電動畫特效”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“純CSS怎么實現水波紋的電池充電動畫特效”吧!
要想完成這個特效,就必須要知道一些前置的屬性,簡單介紹一下吧:
animation 、transform 和 filter 這三個就不多做介紹了,基本上所有的動畫都會用到這兩個屬性。
box-shadow:陰影
用法:box-shadow: h-shadow v-shadow blur spread color inset;
h-shadow:必填的,水平陰影的位置,允許負值
v-shadow:必需的。垂直陰影的位置。允許負值
blur:模糊距離
spread:陰影的大小
color:陰影的顏色
inset:從外層的陰影(開始時)改變陰影內側陰影
border-radius:設置圓角
可設置四個值,與 margin
、padding
的使用方法一樣
也就是每個半徑的四個值的順序是:左上角
,右上角
,右下角
,左下角
。
如果省略左下角,右上角是相同的。
如果省略右下角,左上角是相同的。
如果省略右上角,左上角是相同的。
linear-gradient():漸變,用于創建一個表示兩種或多種顏色線性漸變的圖片。
用法:background-image: linear-gradient(direction, color-stop1, color-stop2, ...);
direction: 用角度值指定漸變的方向(或角度),制定方向
color...: 依次有什么顏色變為什么顏色
我們設置兩個 div ,一個座位底部的容器,上面弄個小蓋子,主要通過border-radius
設置下周邊的圓角,并且加入box-shadow
加入陰影,增強立體感
這里可以使用定位布局,通過top
來控制水的位置,top
的值越大水越低,top
的值越小水越高
我們把水位設置為80%,同時通過linear-gradient() 來設置水的一個漸變色:
那么動畫就很簡單了,只需要控制 top
值就會造成水的上升,像這樣
這時需要注意的點是:
最上方我們的容器設置了圓角,所以在動畫到100%的時候,要和容器的圓角一樣
水位在移動,為了增強立體感,可設置陰影,可以以有個遞進的效果,所以顏色最好稍微變深一點,并且顏色最好偏近
變色還是通過: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); } }
這個特效相信大家都見過,其思想就是在上面的大概位置上設置背景顏色,用相同的底色覆蓋,
然后用到translate
這個屬性,通過轉化x
、y
值,然后通過不停的旋轉角度,至于數值為啥是這個值,我也搞不清楚。。。有知道的小伙伴可以在評論區留言.
p{ //復蓋 border-radius: 45% 47% 44% 42%; transform: translate(-50%, 0); animation: move 10s linear infinite; } @keyframes move { 100% { transform: translate(-50%, -160px) rotate(720deg); } }
此時,我們發現這個效果并不太真實,進行多覆蓋兩個,改變旋轉值和border-radius
的值來設置水面不重疊,但又有差距的效果
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怎么實現水波紋的電池充電動畫特效”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。