当前位置:首页 > CSS

css制作冒泡

2026-04-01 12:21:59CSS

使用CSS制作冒泡效果

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

HTML结构

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

CSS样式

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

css制作冒泡

<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动态创建气泡:

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制作表格 CSS可以用来样式化HTML表格,使其更具视觉吸引力和功能性。以下是几种常见的方法: 基础表格样式 通过CSS可以调整表格的边框、间距和颜色: <table>…

css制作tab菜单

css制作tab菜单

CSS制作Tab菜单的方法 HTML结构 使用无序列表和div容器构建基础结构,列表项为标签页标题,div内放置对应内容块。 <ul class="tab-menu"> <li…

css背景图片制作

css背景图片制作

使用CSS设置背景图片 在CSS中,可以通过background-image属性为元素添加背景图片。以下是一个基本示例: .element { background-image: url('pa…

css制作雪花

css制作雪花

CSS 制作雪花效果 使用纯CSS可以创建简单的雪花动画效果,主要通过伪元素、动画和变换实现。 基础雪花结构 <div class="snowflake"></div> 六…

css制作tkd

css制作tkd

CSS 制作 TKD(Title, Keywords, Description) TKD(Title, Keywords, Description)是网页 SEO 优化的核心元素,通常通过 HTML…

css奖状制作

css奖状制作

使用CSS制作奖状 奖状制作可以通过CSS结合HTML实现,适用于网页展示或打印。以下是几种常见的设计方法: 基础奖状结构 HTML框架用于定义奖状内容,CSS负责样式设计。 <div cl…