這些效果可謂多種多樣,當然用canvas、svg也都能實現奈何對這些有不熟悉(尷尬),不過咱們用css來寫貌似也沒想象中的那么難吧。
一 懸浮球水波效果
效果圖
css

.container { width: 100px; height: 100px; border-radius: 50%; border: 3px solid #e787e7; background: #ffffff; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); padding: 5px; overflow: hidden; } .wave { position: relative; width: 100px; height: 100px; background-image: linear-gradient(-180deg, #3b7bdb 13%, #4d6fdf 91%); border-radius: 50%; } .wave-mask { position: absolute; width: 200px; height: 200px; top: 0; left: 50%; border-radius: 40%; background-color: rgba(212, 24, 24, 0.9); transform: translate(-50%, -70%) rotate(0); animation: toRotate 10s linear -5s infinite; z-index: 20; background-color: rgba(255, 255, 255, 0.9); } @keyframes toRotate { 50% { transform: translate(-50%, -70%) rotate(180deg); } 100% { transform: translate(-50%, -70%) rotate(360deg); } }
樣式不多,加入了css3動畫
html
<body> <div class="container"> <div class="wave"></div> <div class="wave-mask"></div> </div> </body>
dom元素只有3個div,內容不是很復雜,想必看一下都有所了解吧
拓展
這種效果也可作為 一個 動態的進度條,這樣是不是感覺很酷炫呢,下面就不放code了,補一個語言提示,我們發現在dom里蒙層節點
.wave-mask(div)的top值,可以嘗試一下動態的控制(top)值,在觀察一下水波球的變化,這一步不用寫代碼在控制台就可以實現,好了現在你也可以去嘗試了