HTML5+CSS3小实例:广告灯牌效果的loading动画

实例:广告灯牌效果的loading动画
技术栈:HTML+CSS
效果:

源码:
【html】

<!DOCTYPE html>
<html>
 
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
 
    <title>广告灯牌效果的loading动画</title>
    <link rel="stylesheet" href="../css/88.css">
</head>
 
<body>
    <div class="loader">
        <div class="dot-box">
            <div class="dot" style="--i:0;"></div>
            <div class="dot" style="--i:1;"></div>
            <div class="dot" style="--i:2;"></div>
            <div class="dot" style="--i:3;"></div>
            <div class="dot" style="--i:4;"></div>
            <div class="dot" style="--i:5;"></div>
            <div class="dot" style="--i:6;"></div>
            <div class="dot" style="--i:7;"></div>
            <div class="dot" style="--i:8;"></div>
            <div class="dot" style="--i:9;"></div>
        </div>
        <p>拼命加载中...</p>
        <div class="dot-box">
            <div class="dot" style="--i:0;"></div>
            <div class="dot" style="--i:1;"></div>
            <div class="dot" style="--i:2;"></div>
            <div class="dot" style="--i:3;"></div>
            <div class="dot" style="--i:4;"></div>
            <div class="dot" style="--i:5;"></div>
            <div class="dot" style="--i:6;"></div>
            <div class="dot" style="--i:7;"></div>
            <div class="dot" style="--i:8;"></div>
            <div class="dot" style="--i:9;"></div>
        </div>
    </div>
</body>
 
</html>

【css】

*{
    /* 初始化 */
    margin: 0;
    padding: 0;
    /* box-sizing: border-box; */
}
body{
    /* 100%窗口高度 */
    min-height: 100vh;
    /* 弹性布局 水平+垂直居中 */
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #000;
    /* 自定义属性,可通过var函数对其调用 */
    --c:gold;
}
.loader{
    /* 弹性布局 垂直排列 居中 */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    /* 执行动画:动画名 时长 线性 无限次播放 */
    animation: changeColor 5s linear infinite;
}
.dot-box{
    display: flex;
}
.dot-box .dot{
    width: 20px;
    height: 20px;
    border-radius: 50%;
    /* 通过var函数调用自定义属性--c,设置颜色 */
    background-color: var(--c);
    /* 阴影(发光效果) */
    box-shadow: 0 0 10px var(--c),
    0 0 20px var(--c),
    0 0 40px var(--c),
    0 0 60px var(--c),
    0 0 80px var(--c),
    0 0 100px var(--c);
    margin: 20px 10px;
    /* 默认缩放为0.1倍 */
    transform: scale(0.1);
    /* 执行动画 */
    animation: dotAnimate 2s linear infinite;
    /* 设置每一个点的动画延迟时间 */
    animation-delay: calc(0.1s * var(--i));
}
.loader p{
    color: var(--c);
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 5px;
}
.dot-box:nth-child(3) .dot{
    /* 设置下面一排圆点的动画延迟时间 */
    animation-delay: calc(-0.1s * var(--i));
}
 
/* 定义动画 */
/* 圆点的动画 */
@keyframes dotAnimate {
    0%{
        /* 设置缩放 */
        transform: scale(0.1);
    }
    10%{
        transform: scale(1);
    }
    50%,100%{
        transform: scale(0.1);
    }
}
/* 颜色改变动画 */
@keyframes changeColor {
    0%{
        /* 颜色滤镜 */
        filter: hue-rotate(0deg);
    }
    100%{
        filter: hue-rotate(360deg);
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容