88 lines
1.9 KiB
CSS
88 lines
1.9 KiB
CSS
*{
|
|
/* 初始化 */
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
body{
|
|
/* 100%窗口高度 */
|
|
height: 100vh;
|
|
/* 弹性布局 水平+垂直居中 */
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
background-color: #000;
|
|
}
|
|
.loader{
|
|
/* 相对定位 */
|
|
position: relative;
|
|
/* 自定义属性--c */
|
|
--c: #48c0a3;
|
|
}
|
|
.loader .square{
|
|
width: 200px;
|
|
height: 200px;
|
|
/* 通过var函数调用自定义属性--c */
|
|
background-color: var(--c);
|
|
/* 阴影 外发光效果 */
|
|
box-shadow: 0 0 15px var(--c),
|
|
0 0 30px var(--c),
|
|
0 0 60px var(--c);
|
|
/* 设置旋转元素的基点位置 */
|
|
transform-origin: bottom right;
|
|
/* 执行动画: 动画名 时长 线性 无限次播放 */
|
|
animation: roll 1s linear infinite;
|
|
}
|
|
/* 黑色遮罩(挖空方形) */
|
|
.loader .square::before{
|
|
content: "";
|
|
width: 150px;
|
|
height: 150px;
|
|
/* 绝对定位 居中 */
|
|
position: absolute;
|
|
left: 50%;
|
|
top: 50%;
|
|
transform: translate(-50%,-50%);
|
|
background-color: #000;
|
|
/* 阴影 内发光效果 */
|
|
box-shadow: inset 0 0 15px var(--c),
|
|
inset 0 0 30px var(--c),
|
|
inset 0 0 60px var(--c);
|
|
}
|
|
.loader .text{
|
|
position: absolute;
|
|
width: 300px;
|
|
height: 40px;
|
|
line-height: 40px;
|
|
left: -40px;
|
|
bottom: -80px;
|
|
/* 溢出隐藏 */
|
|
overflow: hidden;
|
|
}
|
|
.loader .text p{
|
|
color: var(--c);
|
|
font-size: 24px;
|
|
white-space: nowrap;
|
|
/* 文字发光效果 */
|
|
text-shadow: 0 0 2px var(--c),
|
|
0 0 4px var(--c),
|
|
0 0 8px var(--c);
|
|
position: absolute;
|
|
/* 默认移出可视范围 */
|
|
left: 100%;
|
|
/* 执行动画 */
|
|
animation: move 3.5s linear infinite;
|
|
}
|
|
|
|
/* 定义动画 */
|
|
/* 方块旋转动画 */
|
|
@keyframes roll {
|
|
100%{
|
|
transform: translateX(-100%) rotateZ(90deg);
|
|
}
|
|
}
|
|
/* 文本移动动画 */
|
|
@keyframes move {
|
|
100%{
|
|
left: -50%;
|
|
}
|
|
} |