使用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>
相关文章
|
26天前
|
Web App开发 移动开发 JavaScript
纯CSS3+SVG实现的节日庆祝五彩纸屑动画效果源码
这是一款基于纯CSS3+SVG实现的节日庆祝五彩纸屑动画效果源码。画面中左下角是一个圆锥形礼炮卡通效果,呈现出节日庆祝时礼花爆破、五彩纸屑纷飞的动画特效。整体动画效果采用纯css3+svg实现,没有引入任何外部图形或js脚本元素。建议使用支持HTML5与css3效果较好的火狐(Firefox)或谷歌(Chrome)等浏览器预览本源码。
41 6
|
2月前
|
前端开发
CSS制作月球行走404页面特效源码
CSS制作月球行走404页面特效源码是一款迈克杰克逊在月球上漫步走路404页面模板下载。效果非常逼真,感兴趣的朋友可以查看效果演示,也可以下载源码。
25 3
|
8月前
|
前端开发
css_跳动的心制作过程
css_跳动的心制作过程
45 0
|
8月前
|
前端开发
CSS 绘制世界杯足球场
CSS 绘制世界杯足球场
629 0
|
8月前
|
前端开发 JavaScript
css制作瀑布流布局
css制作瀑布流布局
56 0
|
前端开发
css制作旋转的太极
css制作旋转的太极
73 0
|
前端开发
css画的月亮
css画的月亮
80 0
|
前端开发 数据可视化 容器
奇思妙想 CSS 3D 动画 | 仅使用 CSS 能制作出多惊艳的动画? (下)
奇思妙想 CSS 3D 动画 | 仅使用 CSS 能制作出多惊艳的动画? (下)
253 0
奇思妙想 CSS 3D 动画 | 仅使用 CSS 能制作出多惊艳的动画? (下)
|
前端开发 容器
奇思妙想 CSS 3D 动画 | 仅使用 CSS 能制作出多惊艳的动画? (上)
奇思妙想 CSS 3D 动画 | 仅使用 CSS 能制作出多惊艳的动画? (上)
450 0