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>
相关推荐
我认不到你5 分钟前
antd proFromSelect 懒加载+模糊查询
前端·javascript·react.js·typescript
集成显卡8 分钟前
axios平替!用浏览器自带的fetch处理AJAX(兼容表单/JSON/文件上传)
前端·ajax·json
scc214015 分钟前
spark的学习-06
javascript·学习·spark
焚琴煮鹤的熊熊野火17 分钟前
前端垂直居中的多种实现方式及应用分析
前端
我是苏苏37 分钟前
C# Main函数中调用异步方法
前端·javascript·c#
转角羊儿1 小时前
uni-app文章列表制作⑧
前端·javascript·uni-app
大G哥1 小时前
python 数据类型----可变数据类型
linux·服务器·开发语言·前端·python
hong_zc1 小时前
初始 html
前端·html
前端Hardy1 小时前
探索 HTML 和 CSS 实现的 3D 开关按钮
css·3d·html
小小吱1 小时前
HTML动画
前端·html