zoukankan      html  css  js  c++  java
  • 如何用纯 CSS 创作单元素点阵 loader

    效果预览

    在线演示

    按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。
    https://codepen.io/comehope/pen/YvBvBr

    可交互视频

    此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。

    请用 chrome, safari, edge 打开观看。

    https://scrimba.com/p/pEgDAM/cwE7NCm

    源代码下载

    本地下载

    每日前端实战系列的全部源代码请从 github 下载:

    https://github.com/comehope/front-end-daily-challenges

    代码解读

    定义 dom,只有 1 个元素:

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

    居中显示:

    body {
        margin: 0;
        height: 100vh;
        display: flex;
        align-items: center;
        justify-content: center;
        background: radial-gradient(darkgreen 30%, forestgreen);
    }
    

    定义容器尺寸:

    .loader {
         10em;
        height: 10em;
        font-size: 20px;
    }
    

    用 box-shadow 画出 2 组点阵:

    .loader::before,
    .loader::after {
        content: '';
        position: absolute;
         1em;
        height: 1em;
        background-color: currentColor;
        box-shadow:
            0 0, 2em 0, 4em 0, 6em 0,
            0 2em, 2em 2em, 4em 2em, 6em 2em,
            0 4em, 2em 4em, 4em 4em, 6em 4em,
            0 6em, 2em 6em, 4em 6em, 6em 6em;
        border-radius: 50%;
    }
    
    .loader::before {
        color: gold;
    }
    
    .loader::after {
        color: dodgerblue;
    }
    

    定义动画:

    @keyframes round {
        0% {
            transform: translateX(0) translateY(0);
        }
    
        25% {
            transform: translateX(3em) translateY(0);
        }
    
        50% {
            transform: translateX(3em) translateY(3em);
        }
    
        75% {
            transform: translateX(0) translateY(3em);
        }
    }
    

    最后,把动画效果应用到点阵上:

    .loader::before,
    .loader::after {
        animation: round 2s ease infinite;
    }
    
    .loader::after {
        animation-delay: -1s;
    }
    

    大功告成!

    原文地址:https://segmentfault.com/a/1190000015444368
  • 相关阅读:
    Javascript异步编程的4种方法(阮一峰)
    vue 要点
    npm指南
    http请求状态及其含义表
    IOS 7层协议
    js模块化
    UITouch触摸事件
    UIGestureRecognizer手势识别
    UISegmentControl 、UIStepper
    UINavigationController
  • 原文地址:https://www.cnblogs.com/qixidi/p/10026100.html
Copyright © 2011-2022 走看看