当前位置:首页 > CSS

css制作下雨动画

2026-03-12 13:40:18CSS

使用CSS制作下雨动画

通过CSS的@keyframesanimation属性可以模拟下雨效果。以下是一个简单实现方法:

HTML结构

<div class="rain"></div>

CSS动画

css制作下雨动画

.rain {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
}

.rain:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 2px;
  height: 10px;
  background: linear-gradient(transparent, #00b4ff);
  animation: rain-fall 1s linear infinite;
}

@keyframes rain-fall {
  0% {
    transform: translateY(-100px) rotate(15deg);
    opacity: 1;
  }
  100% {
    transform: translateY(100vh) rotate(15deg);
    opacity: 0.2;
  }
}

增强雨滴效果

创建多个随机分布的雨滴:

.rain span {
  position: absolute;
  width: 2px;
  height: 10px;
  background: #00b4ff;
  animation: rain 1s linear infinite;
}

@keyframes rain {
  to {
    transform: translateY(100vh);
  }
}

通过JavaScript动态生成雨滴:

css制作下雨动画

const rainContainer = document.querySelector('.rain');
for(let i=0; i<100; i++) {
  const drop = document.createElement('span');
  drop.style.left = Math.random() * 100 + 'vw';
  drop.style.animationDuration = (Math.random() * 0.5 + 0.5) + 's';
  drop.style.opacity = Math.random();
  rainContainer.appendChild(drop);
}

添加雨滴溅起效果

使用伪元素模拟雨滴落地效果:

.rain span:after {
  content: '';
  position: absolute;
  bottom: -5px;
  left: -1px;
  width: 4px;
  height: 2px;
  background: rgba(255,255,255,0.2);
  border-radius: 50%;
  animation: splash 0.4s ease-out infinite;
}

@keyframes splash {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(5);
    opacity: 0;
  }
}

优化性能的技巧

使用will-change属性提升动画性能:

.rain span {
  will-change: transform, opacity;
}

减少雨滴数量在移动设备上:

const dropCount = window.innerWidth < 768 ? 50 : 100;

这些方法组合可以创建出逼真的下雨动画效果,通过调整参数如雨滴大小、速度、密度等可获得不同的视觉效果。

标签: 动画css
分享给朋友:

相关文章

css 制作导航

css 制作导航

基础导航栏制作 使用HTML和CSS创建一个水平导航栏。HTML结构通常使用<ul>和<li>标签,CSS负责样式布局。 <nav> <ul class…

css表格制作

css表格制作

CSS 表格制作基础 使用 CSS 可以创建美观且响应式的表格。以下是一些基本方法: table 元素用于定义表格,tr 定义行,td 定义单元格,th 定义表头单元格。 <table>…

css样式制作

css样式制作

CSS 样式制作基础 CSS(层叠样式表)用于控制网页的视觉呈现。通过选择器和属性组合,可以精确调整元素的布局、颜色、字体等样式。 选择器类型 元素选择器:p { color: red; } 选中…

css精灵图制作

css精灵图制作

CSS 精灵图制作方法 准备工具 图像编辑软件(如 Photoshop、GIMP 或在线工具) CSS 代码编辑器 步骤 收集图像资源 将需要合并的小图标或图片整理到一个文件夹中,确保这些图片尺寸…

jquery 动画

jquery 动画

jQuery 动画基础 jQuery 提供了一系列动画方法,用于实现元素的动态效果,如淡入淡出、滑动、自定义动画等。 常用动画方法 fadeIn() / fadeOut(): 元素的淡入和…

css 制作三角形

css 制作三角形

使用边框制作三角形 通过设置元素的边框属性,利用边框交汇处的斜切特性生成三角形。将元素的宽高设为0,通过调整不同方向边框的宽度和颜色实现。 .triangle { width: 0; hei…