📜  CSS 雨和闪电效果(1)

📅  最后修改于: 2023-12-03 15:14:22.826000             🧑  作者: Mango

CSS 雨和闪电效果

CSS 雨和闪电效果是一种基于纯CSS实现的动态特效,通过运用CSS动画和一些特殊的选择器来实现。此种特效可以很好的为网页增添一些动态的元素,增强用户体验,同时也不会给页面性能带来太大的压力。

雨效果

下面是一段CSS代码实现的雨效果:

.rain {
  position: relative;
  overflow: hidden;
  height: 400px;
  background-color: #333; 
}

.rain:before, .rain:after {
  content: "";
  position: absolute;
  left: -50px;
  top: -50px;
  z-index: 1;
  width: 50px;
  height: 50px;
  background-image: linear-gradient(rgba(255, 255, 255, 0.5) 50%, transparent 50%);
  background-size: 2px 2px;
  animation: raindrop 0.5s linear infinite;
}

.rain:after {
  left: -25px;
  animation-delay: 0.25s;
}

@keyframes raindrop {
  0% {
    transform: translateY(0px) rotateZ(0deg);
  }
  100% {
    transform: translateY(500px) rotateZ(360deg);
  }
}

上面的代码定义了一个名为rain的类,利用伪元素:before:after作为雨滴,其中beforeafter是一样的。伪元素用于在元素的前后方添加虚拟的元素,以此实现一些特殊的效果。在上面的代码中,我们通过线性渐变的方式定义伪元素的背景色,设置为白色透明度50%和透明色50%交替出现。然后通过transform变换实现运动路径动画,让雨滴沿垂直方向向下流动,并且以360度的速度旋转。

闪电效果

下面是一段CSS代码实现的闪电效果:

.lightning {
  position: relative;
  overflow: hidden;
  height: 400px;
  background-color: #000;
}

.lightning:after {
  content: "";
  position: absolute;
  left: 10%;
  bottom: 0;
  z-index: 2;
  width: 80%;
  height: 30%;
  background: linear-gradient(rgba(255, 255, 255, 1) 50%, transparent 50%);
  transform: skew(-30deg);
  animation: lightning 0.5s linear infinite;
}

.lightning:before {
  content: "";
  position: absolute;
  left: 10%;
  bottom: 0;
  z-index: 1;
  width: 80%;
  height: 80%;
  background: linear-gradient(rgba(255, 255, 255, 0.6) 50%, transparent 50%);
  transform: skew(-30deg);
}

@keyframes lightning {
  0% {
    transform: skew(-30deg);
  }
  50% {
    transform: skew(30deg);
  }
  100% {
    transform: skew(-30deg);
  }
}

上面的代码定义了一个名为lightning的类,利用伪元素:before:after作为闪电,其中beforeafter是一样的。伪元素用于在元素的前后方添加虚拟的元素,以此实现一些特殊的效果。在上面的代码中,我们通过线性渐变的方式定义伪元素的背景色,设置为白色和透明色交替出现。然后通过transform变换以及动画来实现闪电的效果。闪电的实现需要一些复杂的CSS技巧,具体可以参考上面的代码实现。

总结:CSS 雨和闪电效果是一种基于纯CSS实现的动态特效,可以很好的为网页增添一些动态的元素,增强用户体验,同时也不会给页面性能带来太大的压力。以上是我为大家介绍的CSS雨和闪电效果。