当前位置:首页 > JavaScript

js实现气泡

2026-04-05 13:53:14JavaScript

实现气泡效果的方法

在JavaScript中实现气泡效果可以通过CSS动画和动态元素创建结合完成。以下是具体实现方式:

js实现气泡

基础HTML结构

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

CSS样式设置

.bubble {
  position: absolute;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.6);
  pointer-events: none;
  animation: float 4s ease-in-out infinite;
}

@keyframes float {
  0% {
    transform: translateY(0) rotate(0deg);
    opacity: 1;
  }
  100% {
    transform: translateY(-100px) rotate(360deg);
    opacity: 0;
  }
}

JavaScript实现逻辑

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

  const size = Math.random() * 30 + 10;
  bubble.style.width = `${size}px`;
  bubble.style.height = `${size}px`;
  bubble.style.left = `${Math.random() * 100}%`;
  bubble.style.bottom = '0';
  bubble.style.animationDuration = `${Math.random() * 3 + 2}s`;

  container.appendChild(bubble);

  setTimeout(() => {
    bubble.remove();
  }, 4000);
}

// 定时创建气泡
setInterval(createBubble, 300);

鼠标交互气泡增强版

document.addEventListener('mousemove', (e) => {
  const bubble = document.createElement('div');
  bubble.className = 'bubble';
  bubble.style.left = `${e.clientX}px`;
  bubble.style.top = `${e.clientY}px`;

  const size = Math.random() * 40 + 10;
  bubble.style.width = `${size}px`;
  bubble.style.height = `${size}px`;

  document.body.appendChild(bubble);

  setTimeout(() => {
    bubble.remove();
  }, 2000);
});

彩色气泡变体

function getRandomColor() {
  const colors = ['#ff9999', '#99ff99', '#9999ff', '#ffff99', '#ff99ff'];
  return colors[Math.floor(Math.random() * colors.length)];
}

function createColorBubble() {
  const bubble = document.createElement('div');
  bubble.className = 'bubble';
  bubble.style.backgroundColor = getRandomColor();
  // 其余创建逻辑与基础版相同
}

这些实现方式可以根据具体需求进行调整,如改变气泡大小、颜色、运动轨迹或出现频率等参数来达到不同的视觉效果。

标签: 气泡js
分享给朋友:

相关文章

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

vue实现气泡

vue实现气泡

实现气泡效果的方法 在Vue中实现气泡效果可以通过CSS动画结合组件动态渲染完成。以下是两种常见实现方式: 使用CSS动画和动态组件 创建一个气泡组件,通过CSS定义上升动画效果,动态控制气泡生成和…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(f…