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函数。
相关推荐
大鸡腿最好吃11 分钟前
为啥react要用jsx
前端·javascript·react.js
小黄编程快乐屋15 分钟前
前端小练习——大雪纷飞(JS没有上限!!!)
开发语言·前端·javascript
程序猿阿伟16 分钟前
《平衡之策:C++应对人工智能不平衡训练数据的数据增强方法》
前端·javascript·c++
STUPID MAN31 分钟前
vue3使用后端传递的文件流进行文件预览
前端·javascript·vue.js·文件预览
-代号952739 分钟前
【React】二、状态变量useState
前端·javascript·react.js
爬坑的小白40 分钟前
el-menu导航三级数据结构及数据展示
前端·javascript·vue.js
CodeSheep1 小时前
雷军又添一员猛将!!
前端·后端·程序员
dz88i81 小时前
关于Chrome自动同步书签的解决办法
前端·chrome
guokanglun1 小时前
JavaScript 键盘控制移动
开发语言·javascript
温轻舟2 小时前
前端开发 之 15个页面加载特效中【附完整源码】
前端·javascript·css·html