CSS\JS实现页面背景气泡logo上浮效果

效果图:

单容器显示气泡:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Bubble Logo Animation</title>

</head>
<body>
    <div class="bubble-container">
        <!-- 气泡将会动态添加到这里 -->
    </div>


</body>



<style>
body, html {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-color: #ffffff; /* 背景颜色 */
    display: flex;
    justify-content: center;
    align-items: center;
}

.bubble-container {
    position: relative;
    width: 100%;
    height: 100%;
}

.bubble {
    position: absolute;
    bottom: -50px; /* 从页面底部开始 */
    width: 100px;
    height: 100px;
    opacity: 0.8;
    animation: floatUp 10s infinite;
}

.bubble img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* 气泡上浮动画 */
@keyframes floatUp {
    0% {
        transform: translateY(0) scale(1);
        opacity: 1;
    }
    100% {
        transform: translateY(-100vh) scale(1.2);
        opacity: 0;
    }
}


</style>

<script>
const bubbleContainer = document.querySelector('.bubble-container');

function createBubble() {
    const bubble = document.createElement('div');
    bubble.className = 'bubble';
    bubble.style.left = `${Math.random() * 100}vw`; // 随机水平位置
    bubble.style.animationDuration = `${5 + Math.random() * 5}s`; // 随机动画时长
    bubble.innerHTML = `<img src="https://img-home.csdnimg.cn/images/20201124032511.png" alt="Logo">`;

    bubbleContainer.appendChild(bubble);

    // 动画结束后移除气泡
    bubble.addEventListener('animationend', () => {
        bubble.remove();
    });
}

// 定期生成新的气泡
setInterval(createBubble, 1000);


</script>
</html>

全屏显示气泡:

html 复制代码
  <div class="one" style="width: 100%;height: 300px;background-color: pink;">

  </div>

    <div class="bubble-container">
        <!-- 气泡将会动态添加到这里 -->
    </div>




    <style>
        .one {
            width: 100%;
            height: 300px;
            background-color: pink;
            z-index: 1;
            position: relative;
        }

        /* 覆盖整个页面的气泡容器 */
        .bubble-container {
            position: fixed; /* 使容器固定在页面上 */
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none; /* 确保气泡不影响页面其他内容的交互 */
            z-index: 9999; /* 将气泡放在最前面 */
        }

        .bubble {
            position: absolute;
            bottom: -50px;
            width: 75px;
            height: 75px;
            opacity: 0.5;
            animation: floatUp 10s infinite;
        }

        .bubble img {
            width: 100%;
            height: 100%;
            object-fit: contain;
        }

        /* 气泡上浮动画 */
        @keyframes floatUp {
            0% {
                transform: translateY(0) scale(1);
                opacity: 0.8;
            }
            100% {
                transform: translateY(-100vh) scale(1.2);
                opacity: 0;
            }
        }
    </style>

<script>
const bubbleContainer = document.querySelector('.bubble-container');

function createBubble() {
    const bubble = document.createElement('div');
    bubble.className = 'bubble';
    bubble.style.left = `${Math.random() * 100}vw`; // 随机水平位置
    bubble.style.animationDuration = `${5 + Math.random() * 5}s`; // 随机动画时长
    bubble.innerHTML = `<img src="https://img-home.csdnimg.cn/images/20201124032511.png" alt="Logo">`;

    bubbleContainer.appendChild(bubble);

    // 动画结束后移除气泡
    bubble.addEventListener('animationend', () => {
        bubble.remove();
    });
}

// 定期生成新的气泡
setInterval(createBubble, 5000);


</script>
相关推荐
m0_敲代码的彭于晏16818 小时前
Vercel 前端部署平台深度评测
前端
怕浪猫19 小时前
外包和大厂的前端代码,差在凌晨三点
前端·面试·github
m0_敲代码的彭于晏16820 小时前
Vercel 前端部署与全栈开发实战指南
前端·状态模式
徐小夕20 小时前
花了3个月,我们做了一款 AI 版的“飞书文档”
前端·算法·github
贾伟康20 小时前
【化学实验室|17】HarmonyOS ArkTS 亮暗色与视觉令牌实战:集中颜色、间距和交互状态避免页面割裂
前端·移动开发·harmonyos·arkts·arkui
Csvn21 小时前
SSR/SSG/ISR(上):峡谷与渲染策略的时间预算
前端
Csvn21 小时前
SSR/SSG/ISR(下):可交互性、新鲜度与回源账
前端
酷炫码神21 小时前
Day 10|Pinia 状态管理:把散落在各组件的数据,收进一个全局仓库
android·开发语言·javascript
Elcker1 天前
YnuoAgent(依诺):一个 npm 包,跑起属于自己的 AI 研发平台
前端·人工智能·npm
酷炫码神1 天前
Day 8|Vue3 响应式:告别手动操作 DOM,让数据驱动界面
javascript·vue.js·ecmascript