以下是使用CSS3实现的水波纹动画示例:

HTML代码:

<div class="wave"></div>

CSS代码:

.wave {
  position: relative;
  width: 200px;
  height: 200px;
  background: #0099ff;
  border-radius: 50%;
  overflow: hidden;
}
.wave:before, .wave:after {
  content: "";
  position: absolute;
  width: 400px;
  height: 400px;
  top: -100px;
  left: -100px;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  transform-origin: center center;
  animation: wave 2s linear infinite;
}
.wave:after {
  animation-delay: -1s;
}
@keyframes wave {
  0% {
    transform: scale(0.8);
    opacity: 0;
  }
  50% {
    transform: scale(1.2);
    opacity: 1;
  }
  100% {
    transform: scale(1.6);
    opacity: 0;
  }
}

解释说明:

  • 使用一个div元素作为容器,设置宽高和背景色,同时设置圆角为50%实现圆形效果。
  • 在容器内部创建两个伪元素:before和:after,宽高为400px,背景色为半透明白色,圆角同样设置为50%。
  • 设置伪元素的位置为top:-100px和left:-100px,让其超出容器的范围。
  • 设置伪元素的动画效果为wave,持续时间为2秒,线性变化,无限循环。
  • 在伪元素中定义动画效果wave,设置三个关键帧,分别为0%、50%和100%。
  • 在0%关键帧中,设置伪元素的初始尺寸为0.8倍,透明度为0。
  • 在50%关键帧中,设置伪元素的尺寸为1.2倍,透明度为1。
  • 在100%关键帧中,设置伪元素的尺寸为1.6倍,透明度为0。
  • 为了让两个伪元素的动画效果错开,需要对后一个伪元素的动画延迟1秒。
生成一个水波纹动画

原文地址: https://www.cveoy.top/t/topic/b8vD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录