当前位置:首页 > CSS

css制作滴水动画

2026-04-01 21:17:28CSS

使用CSS制作滴水动画

通过CSS的@keyframestransform属性可以模拟水滴下落的动画效果。以下是实现方法:

HTML结构

<div class="container">
  <div class="drop"></div>
  <div class="ripple"></div>
</div>

CSS动画代码

.container {
  position: relative;
  width: 200px;
  height: 200px;
}

.drop {
  width: 20px;
  height: 20px;
  background: #00a8ff;
  border-radius: 50%;
  position: absolute;
  top: 10px;
  left: 90px;
  animation: drop 1.5s cubic-bezier(0.4, 0, 1, 1) infinite;
}

.ripple {
  width: 20px;
  height: 20px;
  background: rgba(0, 168, 255, 0.5);
  border-radius: 50%;
  position: absolute;
  top: 30px;
  left: 90px;
  animation: ripple 1.5s cubic-bezier(0.4, 0, 1, 1) infinite;
}

@keyframes drop {
  0% {
    transform: translateY(0);
    opacity: 1;
  }
  80% {
    transform: translateY(100px);
    opacity: 1;
  }
  100% {
    transform: translateY(120px);
    opacity: 0;
  }
}

@keyframes ripple {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(10);
    opacity: 0;
  }
}

优化滴水效果

为了使水滴效果更逼真,可以添加以下改进:

添加水滴拉伸效果

@keyframes drop {
  0% {
    transform: translateY(0) scaleY(1);
  }
  50% {
    transform: translateY(50px) scaleY(0.8);
  }
  80% {
    transform: translateY(100px) scaleY(1.2);
  }
  100% {
    transform: translateY(120px) scaleY(0);
  }
}

添加多个涟漪效果

<div class="container">
  <div class="drop"></div>
  <div class="ripple ripple1"></div>
  <div class="ripple ripple2"></div>
</div>
.ripple1 {
  animation-delay: 0.2s;
}

.ripple2 {
  animation-delay: 0.4s;
}

使用CSS变量控制参数

通过CSS变量可以更方便地调整动画参数:

css制作滴水动画

:root {
  --drop-size: 20px;
  --drop-color: #00a8ff;
  --animation-duration: 1.5s;
}

.drop {
  width: var(--drop-size);
  height: var(--drop-size);
  background: var(--drop-color);
  /* 其余样式保持不变 */
}

这种方法可以轻松修改水滴大小、颜色和动画速度,而无需修改关键帧定义。

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

相关文章

vue的动画实现

vue的动画实现

Vue 动画实现方式 Vue 提供了多种方式实现动画效果,主要通过内置组件和第三方库支持。 使用 Vue 内置过渡组件 Vue 的 transition 和 transition-group 组件可…

vue动画实现

vue动画实现

Vue动画实现方法 Vue提供了多种方式实现动画效果,主要通过内置组件和第三方库完成。 使用<transition>组件 Vue内置的<transition>组件可以为元素添…

css3动画在线制作

css3动画在线制作

CSS3 动画在线制作工具 以下是一些常用的在线工具和平台,可以帮助快速生成 CSS3 动画代码,无需手动编写: Animista 网址:https://animista.net/ 特点:提供预设的…

css如何制作未读图标

css如何制作未读图标

未读图标实现方法 通过CSS可以创建多种未读图标的样式,以下是几种常见的实现方式: 使用伪元素创建小红点 .unread-badge { position: relative; displa…

css制作许愿墙六块

css制作许愿墙六块

CSS 制作许愿墙六块布局 使用 CSS 创建一个六块许愿墙布局可以通过多种方式实现,以下是两种常见的方法:使用 CSS Grid 或 Flexbox。以下代码示例展示了如何实现这两种布局。 方…

div css制作

div css制作

使用 DIV 和 CSS 制作网页布局 DIV 是 HTML 中的块级元素,结合 CSS 可以灵活地创建各种网页布局。以下是常见的使用方法: 基础 DIV 结构 <div class="c…