使用纯 CSS 创建波浪

2025-06-10

使用纯 CSS 创建波浪

大家好!

今天我们将学习如何使用纯 CSS 创建类似 ps4 界面的波浪,以下是最终结果:

让我们开始吧

HTML



<div class='box'>
          <div class='wave -one'></div>
          <div class='wave -two'></div>
          <div class='wave -three'></div>
      </div>


Enter fullscreen mode Exit fullscreen mode

我们需要为您想要设置的每个波浪设置一个“div”,在这个例子中,我们将使用其中 3 个带有类“wave”的 div,并将它们包装在另一个带有类“box”的 div 中。

CSS



.box {
  position: fixed;
  top: 0;
  transform: rotate(80deg); 
  left: 0;
}

.wave {
  position: absolute;
  opacity: .4;
  width: 1500px;
  height: 1300px;
  margin-left: -150px;
  margin-top: -250px;
  border-radius: 43%;
}


Enter fullscreen mode Exit fullscreen mode

首先,我们需要将“box”容器定义为固定位置,以实现与 ps4 界面相同的效果。接下来的 3 条 CSS 规则仅用于将“box”元素定位到您想要的任何位置。您可以随意调整这些值。

设置好“box”元素后,就可以创建波浪了。如果你查看“wave”类中的规则,你会发现大多数规则都是关于波浪的定位,但这个动画的关键规则是 border-radius,原因如下:

我们正在创建具有适度边框半径值的矩形,如果我们放大该动画的一个角,并将波浪放置在正确的位置,我们就能实现波浪效果。

现在我们需要创建动画来旋转波浪。超级简单!



@keyframes rotate {
  from { transform: rotate(0deg); }
  from { transform: rotate(360deg); }
}



Enter fullscreen mode Exit fullscreen mode

一旦我们在 CSS 中有了动画,我们就需要将动画设置到波浪中,使用不同的时间和背景颜色,你还可以调整不透明度:D



.wave.-one {
  animation: rotate 7000ms infinite linear;
  opacity: .1;
  background: #0af;
}

.wave.-two {
  animation: rotate 3000ms infinite linear;
  opacity: .1;
  background: black;
}

.wave.-three {
  animation: rotate 7500ms infinite linear;
  background-color: #77daff;
}


Enter fullscreen mode Exit fullscreen mode

大功告成!现在你应该能看到波浪了!跟我之前做的这个 codepen 类似(不过只能在桌面端正常使用)。

这是我的第一篇博文!希望你喜欢 :D

鏂囩珷鏉ユ簮锛�https://dev.to/pixmy/create-waves-with-pure-css-5gp
PREV
React、GraphQL、gRPC 和 Reactive Microservices - Appwish 平台中的数据流解释
NEXT
在 NestJS 中管理多个环境问题总结