HTML&CSS:丝滑优雅的加载动画效果

557 阅读2分钟

这段代码是一个 HTML 页面,它包含了内联的 CSS 样式,用于创建一个动画加载器(loader)点击获取更多源码

演示效果

HTML&CSS

<!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 {
            background-color: #e8e8e8;
            display: flex;
            align-items: center;
            justify-content: center;
            height: 100vh;
        }

        .loader {
            width: 48px;
            height: 48px;
            margin: auto;
            position: relative;
        }

        .loader:before {
            content: '';
            width: 48px;
            height: 5px;
            background: #f0808050;
            position: absolute;
            top: 60px;
            left: 0;
            border-radius: 50%;
            animation: shadow324 0.5s linear infinite;
        }

        .loader:after {
            content: '';
            width: 100%;
            height: 100%;
            background: #f08080;
            position: absolute;
            top: 0;
            left: 0;
            border-radius: 4px;
            animation: jump7456 0.5s linear infinite;
        }

        @keyframes jump7456 {
            15% {
                border-bottom-right-radius: 3px;
            }

            25% {
                transform: translateY(9px) rotate(22.5deg);
            }

            50% {
                transform: translateY(18px) scale(1, .9) rotate(45deg);
                border-bottom-right-radius: 40px;
            }

            75% {
                transform: translateY(9px) rotate(67.5deg);
            }

            100% {
                transform: translateY(0) rotate(90deg);
            }
        }

        @keyframes shadow324 {

            0%,
            100% {
                transform: scale(1, 1);
            }

            50% {
                transform: scale(1.2, 1);
            }
        }
    </style>
</head>

<body>
    <div class="loader"></div>

</body>

</html>

HTML 结构

  • loader:定义了一个类名为 loader 的 div 元素,用于显示加载动画。

CSS 样式

  • body:设置了页面的背景颜色、显示方式、对齐方式和高度。
  • .loader:定义了加载器的基本样式,包括宽度、高度、外边距和位置。
  • .loader:before:使用伪元素:before 创建了一个绝对定位的元素,用于显示加载器的阴影。它有一个背景颜色、宽度、高度、圆角和动画。
  • .loader:after:使用伪元素:after 创建了另一个绝对定位的元素,用于显示加载器的主体。它有一个背景颜色、宽度、高度、圆角和动画。
  • @keyframes jump7456:定义了一个关键帧动画,用于控制加载器主体的跳跃和旋转效果。动画中包含了不同的变换和边框半径的变化。
  • @keyframes shadow324:定义了一个关键帧动画,用于控制加载器阴影的缩放效果。