HTML&CSS 奇幻森林:小熊的甜蜜蛋糕派对大冒险

这个 HTML 页面包含了一个背景、多个下落的蛋糕图片和一个左右移动的loopy图片,实现了一个小熊吃蛋糕的效果

演示效果


HTML&CSS

html 复制代码
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title>ideal life</title>
    <style type="text/css">
        #back {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(white, pink, #ffaaff, #ffaaff, pink);
        }

        .cake {
            width: 80px;
            height: 80px;
            border-radius: 50%;
            position: absolute;
            transform-style: preserve-3d;
            animation: fall 2s linear infinite;
            z-index: 99;
        }

        @keyframes fall {
            0% {
                top: -60px;
                transform: rotate(0deg);
            }

            100% {
                top: calc(100vh - 100px);
                transform: rotate(360deg);
            }
        }

        #loopy {
            position: absolute;
            bottom: 0;
            width: 200px;
            height: 200px;
            animation: move 10s linear infinite;
            /* 假设动画周期为10秒 */
            border-radius: 50%;
        }

        @keyframes move {
            0% {
                left: 0;
            }

            50% {
                left: calc(100% - 200px);
                /* 图片宽度为200px */
            }

            100% {
                left: 0;
            }
        }
    </style>
</head>

<body>
    <div id="back"></div>
    <div class="cake-container"></div>
    <img src="img/loopy.jpg" id="loopy">
    <script>
        // 随机生成蛋糕图片的位置和下落时间
        function createCakes() {
            const container = document.querySelector('.cake-container');
            for (let i = 0; i < 10; i++) { // 假设生成10个蛋糕
                const cake = document.createElement('img');
                cake.src = 'img/cake.jpg';
                cake.className = 'cake';
                cake.style.left = Math.random() * (window.innerWidth - 100) + 'px'; // 随机生成水平位置
                cake.style.animationDuration = Math.random() * 3 + 2 + 's'; // 随机生成下落时间
                cake.style.animationDelay = Math.random() * 2 + 's'; // 随机生成下落延迟
                container.appendChild(cake);
            }
        }

        // 调用函数生成蛋糕
        window.onload = createCakes;
    </script>
</body>

</html>
  • #back:定义了一个全屏的背景层,使用固定定位,背景颜色从白色渐变到粉色,再到紫色,再回到粉色。
  • .cake:定义了蛋糕图片的样式,宽度和高度都是80px,边框半径为50%使其成为圆形,绝对定位,3D变换,并且应用了一个名为fall的动画。
  • @keyframes fall:定义了fall动画的关键帧,从顶部外60px的位置开始,旋转0度,到视口高度减去100px的位置结束,旋转360度。
  • #loopy:定义了loopy图片的样式,绝对定位在底部,宽度200px,高度200px,并应用了一个名为move的动画。
  • @keyframes move:定义了move动画的关键帧,从左边界开始,到右边界结束(减去图片宽度),然后返回到左边界。
  • createCakes函数:在页面加载时执行,创建10个蛋糕图片元素,设置它们的源文件、类名、随机水平位置、随机动画持续时间和随机动画延迟,然后将它们添加到蛋糕容器中。
  • window.onload = createCakes;:当页面加载完成时,调用createCakes函数。
相关推荐
人工智能训练2 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
会跑的葫芦怪3 小时前
若依Vue 项目多子路径配置
前端·javascript·vue.js
xiaoqi9224 小时前
React Native鸿蒙跨平台如何进行狗狗领养中心,实现基于唯一标识的事件透传方式是移动端列表开发的通用规范
javascript·react native·react.js·ecmascript·harmonyos
jin1233224 小时前
React Native鸿蒙跨平台剧本杀组队消息与快捷入口组件,包含消息列表展示、快捷入口管理、快捷操作触发和消息详情预览四大核心功能
javascript·react native·react.js·ecmascript·harmonyos
烬头88216 小时前
React Native鸿蒙跨平台实现二维码联系人APP(QRCodeContactApp)
javascript·react native·react.js·ecmascript·harmonyos
pas1366 小时前
40-mini-vue 实现三种联合类型
前端·javascript·vue.js
摇滚侠6 小时前
2 小时快速入门 ES6 基础视频教程
前端·ecmascript·es6
2601_949833396 小时前
flutter_for_openharmony口腔护理app实战+预约管理实现
android·javascript·flutter
珑墨6 小时前
【Turbo】使用介绍
前端
军军君017 小时前
Three.js基础功能学习十三:太阳系实例上
前端·javascript·vue.js·学习·3d·前端框架·three