当前位置:首页 > CSS

css制作冒泡

2026-04-01 12:21:59CSS

使用CSS制作冒泡效果

通过CSS的animation@keyframes可以实现动态冒泡效果。以下是一个完整的实现方法:

HTML结构

<div class="bubble-container">
  <div class="bubble"></div>
</div>

CSS样式

.bubble-container {
  position: relative;
  width: 100%;
  height: 300px;
  overflow: hidden;
  background-color: #87CEEB;
}

.bubble {
  position: absolute;
  width: 30px;
  height: 30px;
  background-color: rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  animation: bubble-rise 4s infinite ease-in;
}

@keyframes bubble-rise {
  0% {
    transform: translateY(0) translateX(-50%);
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  100% {
    transform: translateY(-300px) translateX(-50%);
    opacity: 0;
  }
}

创建多个随机冒泡

要创建多个随机出现的冒泡,可以添加更多气泡元素并使用CSS变量控制动画延迟:

HTML

<div class="bubble-container">
  <div class="bubble" style="--delay: 0s; --duration: 4s; --size: 20px;"></div>
  <div class="bubble" style="--delay: 1s; --duration: 5s; --size: 30px;"></div>
  <div class="bubble" style="--delay: 2s; --duration: 6s; --size: 15px;"></div>
</div>

更新CSS

.bubble {
  position: absolute;
  width: var(--size, 20px);
  height: var(--size, 20px);
  background-color: rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  bottom: 0;
  left: calc(10% + (80% * random()));
  animation: bubble-rise var(--duration, 4s) infinite ease-in var(--delay, 0s);
}

@keyframes bubble-rise {
  0% {
    transform: translateY(0);
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  100% {
    transform: translateY(-300px);
    opacity: 0;
  }
}

添加更逼真的效果

为了使冒泡更逼真,可以添加轻微的水平移动和大小变化:

@keyframes bubble-rise {
  0% {
    transform: translateY(0) translateX(0);
    opacity: 0;
    width: var(--size, 20px);
    height: var(--size, 20px);
  }
  10% {
    opacity: 1;
  }
  50% {
    transform: translateX(10px);
    width: calc(var(--size, 20px) * 1.1);
    height: calc(var(--size, 20px) * 1.1);
  }
  100% {
    transform: translateY(-300px) translateX(-10px);
    opacity: 0;
    width: var(--size, 20px);
    height: var(--size, 20px);
  }
}

使用JavaScript动态生成气泡

对于更动态的效果,可以使用JavaScript动态创建气泡:

css制作冒泡

const container = document.querySelector('.bubble-container');

function createBubble() {
  const bubble = document.createElement('div');
  bubble.className = 'bubble';

  const size = Math.random() * 30 + 10;
  const duration = Math.random() * 3 + 3;
  const delay = Math.random() * 2;
  const left = Math.random() * 100;

  bubble.style.cssText = `
    --size: ${size}px;
    --duration: ${duration}s;
    --delay: ${delay}s;
    left: ${left}%;
  `;

  container.appendChild(bubble);

  setTimeout(() => {
    bubble.remove();
  }, duration * 1000);
}

setInterval(createBubble, 300);

标签: css
分享给朋友:

相关文章

css制作详情页

css制作详情页

CSS制作详情页的关键步骤 布局规划 确定详情页的整体布局结构,通常包括头部、商品展示区、参数区、评价区等模块。使用Flexbox或Grid布局实现响应式设计,确保在不同设备上正常显示。 样式设计…

css制作菜单

css制作菜单

CSS 制作菜单的方法 使用 CSS 可以制作多种风格的菜单,包括水平菜单、垂直菜单、下拉菜单等。以下是几种常见的实现方式。 水平菜单 水平菜单通常用于导航栏,可以通过 display: inlin…

css制作图标

css制作图标

使用CSS制作图标的方法 使用伪元素和边框 通过CSS的伪元素和边框属性可以创建简单的几何形状图标。例如,制作一个三角形图标: .triangle { width: 0; heigh…

css如何制作三角形

css如何制作三角形

使用边框属性制作三角形 通过设置元素的宽度和高度为0,利用边框属性可以创建三角形。边框的交汇处会形成斜边,通过设置不同边的颜色和透明度实现三角形效果。 .triangle { width: 0;…

css 制作目录

css 制作目录

使用CSS制作目录的方法 CSS可以用于创建美观且结构清晰的目录,以下是几种常见的方法: 使用无序列表(ul)和样式化 通过无序列表创建目录结构,再利用CSS进行美化: <div class…

如何制作css

如何制作css

CSS 制作基础 CSS(层叠样式表)用于控制网页的样式和布局。制作CSS需要理解其基本语法和常用属性。 语法结构 CSS规则由选择器和声明块组成: 选择器 { 属性: 值; } 常用选择器类…