HTML&CSS :下雪了

这段代码创建了一个动态的雪花飘落加载动画,通过 CSS 技术实现了雪花的下落和消失效果,为页面添加了视觉吸引力和动态感。


大家复制代码时,可能会因格式转换出现错乱,导致样式失效。建议先少量复制代码进行测试,若未能解决问题,私信我,我会发送完整的压缩包给你

演示效果

HTML&CSS

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>公众号关注:前端Hardy</title>
    <style>
        body {
            margin: 0;
            padding: 0;
            height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            position: relative;
            background: #212121;
        }

        .loader {
            position: relative;
            width: 110px;
            height: 30px;
            background: #fff;
            border-radius: 100px;
        }

        .loader::before {
            content: '';
            position: absolute;
            top: -20px;
            left: 10px;
            width: 30px;
            height: 30px;
            background: #fff;
            border-radius: 50%;
            box-shadow: 40px 0 0 20px #fff;
        }

        .snow {
            position: relative;
            display: flex;
            z-index: 1;
        }

        .snow span {
            position: relative;
            width: 3px;
            height: 3px;
            background: #fff;
            margin: 0 2px;
            border-radius: 50%;
            animation: snowing 5s linear infinite;
            animation-duration: calc(15s / var(--i));
            transform-origin: bottom;
        }

        @keyframes snowing {
            0% {
                transform: translateY(0px);
            }

            70% {
                transform: translateY(100px) scale(1);
            }

            100% {
                transform: translateY(100px) scale(0);
            }
        }
    </style>
</head>

<body>
    <div class="loader">
        <div class="snow">
            <span style="--i:11"></span>
            <span style="--i:12"></span>
            <span style="--i:15"></span>
            <span style="--i:17"></span>
            <span style="--i:18"></span>
            <span style="--i:13"></span>
            <span style="--i:14"></span>
            <span style="--i:19"></span>
            <span style="--i:20"></span>
            <span style="--i:10"></span>
            <span style="--i:18"></span>
            <span style="--i:13"></span>
            <span style="--i:14"></span>
            <span style="--i:19"></span>
            <span style="--i:20"></span>
            <span style="--i:10"></span>
            <span style="--i:18"></span>
            <span style="--i:13"></span>
            <span style="--i:14"></span>
            <span style="--i:19"></span>
            <span style="--i:20"></span>
            <span style="--i:10"></span>
        </div>
    </div>
</body>

</html>

HTML 结构

  • loader: 创建一个类名为"loader"的 div 元素,用于包含加载动画的各个部分。
  • snow: 创建一个类名为"snow"的 div 元素,用于包含所有雪花。
  • 每个 span 代表一个雪花,通过 style="--i:n"设置不同的动画持续时间。

CSS 样式

  • body: 设置页面的边距、填充、高度、显示方式和对齐方式,背景色为深灰色。
  • .loader: 设置加载动画的容器样式,包括位置、尺寸、背景色和圆角。
  • .loader::before: 设置一个圆形的伪元素,用于创建雪花飘落的起点,通过 box-shadow 创建多个雪花。
  • .snow: 设置雪花容器的样式,包括位置和显示方式。
  • .snow span: 设置每个雪花的样式,包括位置、尺寸、背景色、边距、圆角和动画效果。
  • animation: snowing 5s linear infinite: 应用雪花飘落的动画,持续时间为 15s / var(--i),使每个雪花的下落速度不同。
  • transform-origin: bottom: 设置雪花的变换原点为底部,使雪花从底部开始下落。@keyframes snowing: 定义雪花飘落的动画效果。0%: 雪花在初始位置。70%: 雪花下落 100 像素,并保持原始大小。100%: 雪花下落 100 像素,并逐渐消失(通过 scale(0))。
相关推荐
SoaringHeart2 分钟前
Flutter进阶:基于 EasyRefresh 的下拉刷新封装 n_easy_refresh_mixin.dart
前端·flutter
IT_陈寒2 小时前
Vite的热更新突然不香了,排查三小时差点砸键盘
前端·人工智能·后端
子兮曰2 小时前
Agency-Agents 深度解析:400+ AI 专家的"梦之队"如何重塑开发工作流
前端·后端·vibecoding
山河木马3 小时前
渲染管线-计算得到gl_Position(顶点着色器)之后续GPU流程
javascript·webgl·图形学
竹林8183 小时前
用 The Graph 查询链上数据实战:从手搓 RPC 到 Subgraph,我的 NFT 项目数据加载快了 10 倍
前端·javascript
妙码生花3 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十九):点选验证码代码逐行目检
前端·后端·go
Awu12274 小时前
⚡从零开发 Agent CLI(五)实现一个可治理、可扩展的工具系统
前端·人工智能·claude
咪库咪库咪4 小时前
Vue3-生命周期
前端
莪_幻尘5 小时前
你的 AI Skill 越多越蠢?Token 上下文爆炸的求生指南
前端·ai编程
lichenyang4535 小时前
从 has.echo 到异步 API 注册表:一次 ASCF API 回调不触发的排查复盘
前端