.rain { po…">
当前位置:首页 > CSS

css 制作下雨特效

2026-03-11 23:27:29CSS

使用 CSS 制作下雨特效

方法一:纯 CSS 动画

通过 CSS 动画和伪元素创建雨滴下落效果。

<div class="rain"></div>
.rain {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  background: #222;
}

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

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

方法二:多雨滴效果

使用 JavaScript 动态生成多个雨滴元素,增强真实感。

<div class="rain-container"></div>
.rain-container {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  background: #111;
}

.raindrop {
  position: absolute;
  width: 1px;
  height: 30px;
  background: linear-gradient(transparent, rgba(255, 255, 255, 0.8));
  animation: fall linear infinite;
}

@keyframes fall {
  to {
    transform: translateY(100vh);
  }
}
const container = document.querySelector('.rain-container');
const dropsCount = 100;

for (let i = 0; i < dropsCount; i++) {
  const drop = document.createElement('div');
  drop.classList.add('raindrop');
  drop.style.left = `${Math.random() * 100}%`;
  drop.style.top = `${Math.random() * -100}px`;
  drop.style.animationDuration = `${0.5 + Math.random() * 1}s`;
  drop.style.opacity = Math.random();
  container.appendChild(drop);
}

方法三:雨滴涟漪效果

添加雨滴落地时的涟漪效果,增强视觉效果。

.ripple {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
  animation: ripple 0.5s ease-out;
  transform: scale(0);
}

@keyframes ripple {
  to {
    transform: scale(3);
    opacity: 0;
  }
}
container.addEventListener('animationiteration', (e) => {
  if (e.target.classList.contains('raindrop')) {
    const ripple = document.createElement('div');
    ripple.classList.add('ripple');
    ripple.style.left = e.target.offsetLeft + 'px';
    ripple.style.top = '90vh';
    container.appendChild(ripple);
    setTimeout(() => ripple.remove(), 500);
  }
});

方法四:斜向雨滴

通过旋转雨滴元素创建斜向下雨效果。

.raindrop {
  transform: rotate(15deg);
}

方法五:雨滴大小和速度变化

通过随机设置雨滴高度和动画时长,模拟真实雨滴效果。

css 制作下雨特效

drop.style.height = `${10 + Math.random() * 20}px`;
drop.style.animationDuration = `${0.3 + Math.random() * 0.7}s`;

这些方法可以单独使用或组合使用,根据需求调整参数如雨滴数量、速度、方向和视觉效果。

标签: 特效css
分享给朋友:

相关文章

css网页制作教程

css网页制作教程

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

css动画制作

css动画制作

CSS动画制作方法 使用@keyframes规则定义动画序列,通过animation属性将动画应用到元素上。以下是一个基础示例: @keyframes fadeIn { from { opaci…

纯css制作下拉菜单

纯css制作下拉菜单

纯CSS下拉菜单实现方法 通过CSS的:hover伪类和display属性可以实现纯CSS下拉菜单,无需JavaScript。以下是具体实现方式: HTML结构示例: <nav class=…

css怎么制作三角形

css怎么制作三角形

使用边框制作三角形 通过设置元素的边框宽度和颜色,可以创建不同方向的三角形。将元素的宽度和高度设为0,利用边框的透明属性实现。 .triangle-up { width: 0; height…

dw制作css

dw制作css

使用DW(Dreamweaver)制作CSS的步骤 在Adobe Dreamweaver中创建和编辑CSS文件可以通过可视化界面或直接编写代码完成。以下是具体操作方法: 新建CSS文件 打开Drea…

css怎么制作时钟

css怎么制作时钟

使用CSS制作时钟 通过CSS和少量JavaScript可以创建一个动态时钟。以下是实现方法: HTML结构 <div class="clock"> <div class="…