使用CSS来制作下雨的效果

简介: 使用CSS来制作下雨的效果

首先我们来制作HTML部分


我们第一步呢还是先定义变量,loader,然后我们在下面在定义一个snow代表雪花,下面定义各自的变量,让20片雪花随机下滑


<div class="loader">
      <div class="snow">
        <span style="--i:11"></span>
        <span style="--i:12"></span>
        <span style="--i:15"></span>
        <span style="--i:17"></span>
        <span style="--i:18"></span>
        <span style="--i:13"></span>
        <span style="--i:14"></span>
        <span style="--i:19"></span>
        <span style="--i:20"></span>
        <span style="--i:10"></span>
        ......
      </div>
    </div>


css部分


这里使用了伪类选择器


第一是做我们云朵的形状:我们先得设置相对定位,这样雪花才能来到我们下面


然后我们使用圆角边框,第二步我们来写伪元素,用伪元素画两个圆通过位置改变来组成云朵


第三个使用伪元素来设置雪花和雪花的动画效果


body{
          display: flex;
          align-items: center;
          justify-content: center;
          background-color: black;
          transform: translateY(100px);
        }
      .loader{
        position: relative;
        width: 110px;
        height: 30px;
        background-color: #fff;
        border-radius: 100px;
      }
      .loader::before{
        content: '';
        position: absolute;
        width: 30px;
        height: 30px;
        background: #fff;
        border-radius: 50%;
        box-shadow: 40px 0 0 20px #fff;
        left: 10px;
        top: -20px;
      }
      .snow{
        position: relative;
        display: flex;
        z-index: 1;
      }
      .snow span{
        position: relative;
        width: 3px;
        height: 3px;
        background-color: #fff;
        margin: 0 2px;
        border-radius: 50%;
        animation: snowing 5s linear infinite;
        animation-duration: calc(15s / var(--i));
      }
      @keyframes snowing{
        from{
          transform: translateY(0px);
        }
        70%{
          transform: translateY(100px)
          scale(1);
        }
        to{
          transform: translateY(100px)
          scale:(0);
        }
      }


接下来展示源码!


<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title></title>
    <style type="text/css">
        body{
          display: flex;
          align-items: center;
          justify-content: center;
          background-color: black;
          transform: translateY(100px);
        }
      .loader{
        position: relative;
        width: 110px;
        height: 30px;
        background-color: #fff;
        border-radius: 100px;
      }
      .loader::before{
        content: '';
        position: absolute;
        width: 30px;
        height: 30px;
        background: #fff;
        border-radius: 50%;
        box-shadow: 40px 0 0 20px #fff;
        left: 10px;
        top: -20px;
      }
      .snow{
        position: relative;
        display: flex;
        z-index: 1;
      }
      .snow span{
        position: relative;
        width: 3px;
        height: 3px;
        background-color: #fff;
        margin: 0 2px;
        border-radius: 50%;
        animation: snowing 5s linear infinite;
        animation-duration: calc(15s / var(--i));
      }
      @keyframes snowing{
        from{
          transform: translateY(0px);
        }
        70%{
          transform: translateY(100px)
          scale(1);
        }
        to{
          transform: translateY(100px)
          scale:(0);
        }
      }
    </style>
  </head>
  <body>
    <div class="loader">
      <div class="snow">
        <span style="--i:11"></span>
        <span style="--i:12"></span>
        <span style="--i:15"></span>
        <span style="--i:17"></span>
        <span style="--i:18"></span>
        <span style="--i:13"></span>
        <span style="--i:14"></span>
        <span style="--i:19"></span>
        <span style="--i:20"></span>
        <span style="--i:10"></span>
        ......
      </div>
    </div>
  </body>
</html>
相关文章
|
6月前
|
前端开发 程序员 Python
分享84个CSS3特效,总有一款适合您
分享84个CSS3特效,总有一款适合您
56 2
|
3月前
|
前端开发
CSS流光文字效果:打造网页上的霓虹灯效果!
CSS流光文字效果:打造网页上的霓虹灯效果!
|
6月前
|
前端开发
css_跳动的心制作过程
css_跳动的心制作过程
42 0
|
6月前
|
前端开发
CSS 绘制世界杯足球场
CSS 绘制世界杯足球场
491 0
|
6月前
|
前端开发 Python
分享83个CSS3特效,总有一款适合您
分享83个CSS3特效,总有一款适合您
62 4
|
6月前
|
前端开发 Python
分享85个CSS3特效,总有一款适合您
分享85个CSS3特效,总有一款适合您
71 2
|
6月前
|
移动开发 前端开发 JavaScript
分享88个CSS3特效,总有一款适合您
分享88个CSS3特效,总有一款适合您
47 2
|
6月前
|
移动开发 JavaScript 前端开发
分享87个CSS3特效,总有一款适合您
分享87个CSS3特效,总有一款适合您
77 1
|
6月前
|
前端开发 Python
分享86个CSS3特效,总有一款适合您
分享86个CSS3特效,总有一款适合您
81 1
|
前端开发
那些炫酷的CSS文字效果之诗词《兔》
那些炫酷的CSS文字效果之诗词《兔》
114 0