自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

前端: 輕松教你使用純css實(shí)現(xiàn)水波動(dòng)畫

開發(fā) 前端
css3給我們前端開發(fā)帶來了很多便利, 我們可以使用css3 的新特性實(shí)現(xiàn)各種形狀和動(dòng)效, 接下來筆者就來帶大家介紹如何用css3實(shí)現(xiàn) H5-Dooring編輯器 中的水波動(dòng)畫.

 css3給我們前端開發(fā)帶來了很多便利, 我們可以使用css3 的新特性實(shí)現(xiàn)各種形狀和動(dòng)效, 接下來筆者就來帶大家介紹如何用css3實(shí)現(xiàn) H5-Dooring編輯器 中的水波動(dòng)畫.

圖片

由于生成gif的工具比較弱(在線求好用的mac版gif錄頻生成工具...), 我不得不上傳個(gè)原圖, 大家自行腦補(bǔ).


接下來我們來研究實(shí)現(xiàn)原理和實(shí)現(xiàn)方式.

動(dòng)畫拆解

要想用純css實(shí)現(xiàn)曲線, 我們第一反應(yīng)就是用border-radius這個(gè)屬性, 比如說實(shí)現(xiàn)一個(gè)圓, 我們只需要如下設(shè)置:

  1. .circle { 
  2.   border-radius: 50%; 

實(shí)現(xiàn)橢圓,扇形, 半橢圓這些, 只需要設(shè)置不同邊的圓角即可, 如下:

  1. .circle { 
  2.   border-radius: 50% 100% 40% 60%; 

以上的代碼效果如下:

我們再發(fā)揮一下想象, 如果是閉合曲線, 是不是也能用同樣的方法實(shí)現(xiàn)呢?


我們只需要將background換成border, 調(diào)整border-radius參數(shù)即可. 接下來給大家看一下我用css畫的一個(gè)圖形, 各位可以參考學(xué)習(xí)一下:

 

當(dāng)然使用相同的原理我們可以實(shí)現(xiàn)更多有意思的圖案, 筆者這里就不一一舉例了.回歸正題, 我們來看看水波動(dòng)畫的實(shí)現(xiàn)原理. 首先不規(guī)則動(dòng)畫我們實(shí)現(xiàn)了, 剩下的工作就是如何實(shí)現(xiàn)波浪和波浪動(dòng)畫, 參考上面不規(guī)則圖形的實(shí)現(xiàn)方案, 波浪線的制作可以采用類似裁切來實(shí)現(xiàn), 如下:

由上圖可以看出, 我們使用css的border-radius做一個(gè)矩形和一個(gè)圓角矩形, 使用transform來設(shè)置偏移和旋轉(zhuǎn), 就可以實(shí)現(xiàn)底部裁切后的曲面. 最后我們使用animation動(dòng)畫讓其運(yùn)動(dòng)來看看效果:

圖片

我們只需要優(yōu)化上面的動(dòng)畫, 讓背景更柔和, 比如說圓形, 容器溢出隱藏, 這樣就可以實(shí)現(xiàn)H5-Dooring編輯器 中的水波動(dòng)畫了, css源碼如下:

  1. .dragPay { 
  2.       position: absolute
  3.       z-index: 99999; 
  4.       left: 414px; 
  5.       top: 156px; 
  6.       width: 60px; 
  7.       height: 60px; 
  8.       border-radius: 50%; 
  9.       border: 3px solid #20c961; 
  10.       background: #ffffff; 
  11.       overflow: hidden; 
  12.       padding: 5px; 
  13.       box-sizing: border-box; 
  14. .dragPay .wave { 
  15.     position: relative
  16.     left: -8px; 
  17.     width: 60px; 
  18.     height: 60px; 
  19.     background-image: linear-gradient(-180deg, #8dec8a 13%, #70cf23 91%); 
  20.     border-radius: 50%; 
  21.     line-height: 60px; 
  22.     text-align: center; 
  23.     font-size: 32px; 
  24.     cursor: pointer; 
  25. .dragPay .waveMask { 
  26.     position: absolute
  27.     width: 120px; 
  28.     height: 120px; 
  29.     top: 0; 
  30.     left: 50%; 
  31.     border-radius: 40%; 
  32.     background-color: rgba(255, 255, 255, 0.9); 
  33.     transform: translate(-50%, -82%) rotate(0); 
  34.     animation: toRotate 10s linear -5s infinite; 
  35.     z-index: 20; 
  36.     pointer-events: none; 
  37. @keyframes toRotate { 
  38.     50% { 
  39.     transform: translate(-50%, -70%) rotate(180deg); 
  40.     } 
  41.     100% { 
  42.     transform: translate(-50%, -70%) rotate(360deg); 
  43.     } 

 html結(jié)構(gòu)如下:

  1. <div class="dragPay"
  2.     <div class="wave"
  3.       <span>⛽️</span> 
  4.     </div> 
  5.     <div class="waveMask"></div> 
  6. </div> 

當(dāng)然我們可以使用偽元素來優(yōu)化dom結(jié)構(gòu). 大家可以親自感受一下.

 

責(zé)任編輯:姜華 來源: 趣談前端
相關(guān)推薦

2022-03-28 08:44:15

css3水波動(dòng)畫

2022-08-29 17:39:53

應(yīng)用開發(fā)css動(dòng)畫

2022-09-12 08:31:41

CSS3偽類URI

2017-04-27 14:05:59

CSS動(dòng)畫前端

2021-05-11 08:30:54

前端css技術(shù)熱點(diǎn)

2023-11-01 08:33:45

CSS動(dòng)畫效果

2023-06-05 09:28:32

CSS漸變

2021-10-19 22:23:47

CSSBeautiful按鈕

2024-08-29 08:13:58

2024-03-13 08:21:53

冒泡排序動(dòng)畫

2021-09-08 22:28:13

前端Css3動(dòng)畫

2017-05-03 11:30:20

CSS3小黃人動(dòng)畫

2022-07-08 09:55:54

CSS轉(zhuǎn)場動(dòng)畫

2013-04-08 14:07:28

CSS

2020-11-04 13:55:06

CSS密室逃脫前端

2022-08-10 16:08:38

鴻蒙CSS

2022-02-21 07:02:16

CSSbeautiful按鈕

2023-12-20 17:28:48

水波紋ArkUI動(dòng)畫開發(fā)

2021-01-19 12:16:10

CSS前端UI

2010-09-13 16:04:27

CSS控制自動(dòng)換行
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號