纯CSS3和SVG超逼真下雨动画效果

当前位置:主页 > CSS3库 > CSS3动画 > 纯CSS3和SVG超逼真下雨动画效果
纯CSS3和SVG超逼真下雨动画效果
分享:

    插件介绍

    这是一款纯CSS3和SVG超逼真下雨动画效果。该下雨动画特效中,雨滴使用SVG生成,并配合CSS3的帧动画,实现非常逼真的下雨动画。

    浏览器兼容性

    浏览器兼容性
    时间:08-23
    阅读:
简要教程

这是一款纯CSS3和SVG超逼真下雨动画效果。该下雨动画特效中,雨滴使用SVG生成,并配合CSS3的帧动画,实现非常逼真的下雨动画。

使用方法

HTML代码

每一个雨滴或雨水线条都是一个SVG元素。

<svg class="rain__drop" preserveAspectRatio="xMinYMin" viewBox="0 0 5 50" style="--x: 8; --y: 2; --o: 0.6489085809879083; --a: 1.2192307691129924; --d: 0.9023552431878596; --s: 0.3192900540947956">
<path stroke="none" d="M 2.5,0 C 2.6949458,3.5392017 3.344765,20.524571 4.4494577,30.9559 5.7551357,42.666753 4.5915685,50 2.5,50 0.40843152,50 -0.75513565,42.666753 0.55054234,30.9559 1.655235,20.524571 2.3050542,3.5392017 2.5,0 Z"></path>
</svg>
......
		

CSS代码

svg配合CSS代码,生成逼真的细雨效果。

*,
*:before,
*:after {
  box-sizing: border-box;
}
body {
  background-color: #6c78a9 !important;
  display: flex;
    flex-direction: column;
  align-items: center;
  justify-content: center;
}
.rain__drop {
  -webkit-animation-delay: calc(var(--d) * 1s);
          animation-delay: calc(var(--d) * 1s);
  -webkit-animation-duration: calc(var(--a) * 1s);
          animation-duration: calc(var(--a) * 1s);
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-name: drop;
          animation-name: drop;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  height: 30px;
  left: calc(var(--x) * 1%);
  position: absolute;
  top: calc((var(--y) + 50) * -1px);
}
.rain__drop path {
  fill: #a1c6cc;
  opacity: var(--o);
  transform: scaleY(calc(var(--s) * 1.5));
}
@-webkit-keyframes drop {
  90% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translateY(100vh);
  }
}
@keyframes drop {
  90% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translateY(100vh);
  }
}
		

codepen网址:https://codepen.io/jh3y/pen/WyNdMG