当前位置:首页 > 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网页制作教程

CSS网页制作教程 CSS(层叠样式表)是用于控制网页外观和布局的核心技术。以下是CSS网页制作的关键步骤和技巧: 基础语法与引入方式 CSS规则由选择器和声明块组成: 选择器 { 属性: 值…

css制作导航栏

css制作导航栏

水平导航栏 使用 display: inline-block 或 flexbox 创建水平导航栏。设置背景色、内边距和悬停效果增强交互性。 <nav class="horizontal-nav…

淘宝导航css制作

淘宝导航css制作

淘宝导航CSS制作 淘宝导航栏通常包含多个层级,包括主导航、子导航等。以下是实现类似淘宝导航栏的CSS制作方法。 基础HTML结构 <div class="nav-container">…

网页制作中css中运行

网页制作中css中运行

CSS 动画基础 CSS 动画通过 @keyframes 和 animation 属性实现动态效果。@keyframes 定义动画关键帧,animation 控制动画的持续时间、速度曲线等。 定…

简历制作css

简历制作css

简历制作CSS技巧 使用CSS美化简历可以提升视觉效果和专业性。以下是一些关键方法和代码示例: 基础样式设置 body { font-family: 'Arial', sans-serif;…

css尾部制作

css尾部制作

如何制作CSS尾部(页脚) 固定定位法 将页脚固定在页面底部,无论内容多少。使用position: fixed结合bottom: 0实现: footer { position: fixed;…