使用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>
相关文章
|
9月前
|
前端开发
css_跳动的心制作过程
css_跳动的心制作过程
48 0
|
前端开发
css制作旋转的太极
css制作旋转的太极
82 0
|
JavaScript 前端开发 HTML5
太可爱了!CSS3 & SVG 制作的米老鼠钟表
  米老鼠是大家非常熟悉的迪斯尼动画形象。这是一个可爱的效果,结合 CSS & SVG 图形实现的米老鼠钟表效果。Web 技术让很多生活中的事物都能搬到网上去,后面的推荐阅读也有很多的效果,感兴趣的可以去看看。
1164 0
|
2月前
|
Web App开发 移动开发 JavaScript
纯CSS3+SVG实现的节日庆祝五彩纸屑动画效果源码
这是一款基于纯CSS3+SVG实现的节日庆祝五彩纸屑动画效果源码。画面中左下角是一个圆锥形礼炮卡通效果,呈现出节日庆祝时礼花爆破、五彩纸屑纷飞的动画特效。整体动画效果采用纯css3+svg实现,没有引入任何外部图形或js脚本元素。建议使用支持HTML5与css3效果较好的火狐(Firefox)或谷歌(Chrome)等浏览器预览本源码。
64 6
|
JavaScript 前端开发 HTML5
使用 jQuery & CSS3 制作美丽的照片画廊
  在本教程中,我们将创建一个很好看的照片画廊效果。我们的想法是,以显示专辑作为一个滑块,而当这张专辑被选中,我们将使用一个美丽的照片堆栈展示专辑的图像。在照片堆栈视图,我们可以通过将最上面的图像移动到所有照片后面的方式浏览。
950 0
|
前端开发 容器
奇思妙想 CSS 3D 动画 | 仅使用 CSS 能制作出多惊艳的动画? (上)
奇思妙想 CSS 3D 动画 | 仅使用 CSS 能制作出多惊艳的动画? (上)
465 0
|
前端开发 数据可视化 容器
奇思妙想 CSS 3D 动画 | 仅使用 CSS 能制作出多惊艳的动画? (下)
奇思妙想 CSS 3D 动画 | 仅使用 CSS 能制作出多惊艳的动画? (下)
258 0
奇思妙想 CSS 3D 动画 | 仅使用 CSS 能制作出多惊艳的动画? (下)
|
9月前
|
前端开发 JavaScript
css制作瀑布流布局
css制作瀑布流布局
61 0
|
移动开发 前端开发 索引
CSS3火焰文字特效制作教程
原文:CSS3火焰文字特效制作教程 用一句很俗气的话概括这两天的情况就是:“最近很忙”,虽然手头上有不少很酷的HTML5和CSS3资源,但确实没时间将它们的实现过程写成教程分享给大家。今天刚完成了一个神秘的项目,空下来来博客园写点东西。
1298 0

热门文章

最新文章