Files
ruoyi-plus-vben5/apps/web-antd/loading.html
dap 4c0dc60ce6 style(loading): 将熊猫加载动画替换为星球主题动画
更新加载页面的CSS和HTML结构,使用新的星球旋转动画替代原有熊猫动画,提升视觉新鲜感并保持加载功能不变。
2026-02-04 10:47:58 +08:00

291 lines
5.6 KiB
HTML

<style data-app-loading="inject-css">
html {
/* same as antdv-next/dist/reset.css setting, avoid the title line-height changed */
line-height: 1.15;
}
.dark .loading {
background-color: #0d0d10;
}
.dark .loading .title {
color: rgb(255 255 255 / 85%);
}
.loading {
position: fixed;
top: 0;
left: 0;
z-index: 9999;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
overflow: hidden;
pointer-events: none;
background-color: #f4f7f9;
}
/* .loading.hidden {
visibility: hidden;
opacity: 0;
transition: all 0.6s ease-out;
} */
.loading .title {
margin-top: 36px;
font-size: 30px;
font-weight: 600;
color: rgb(0 0 0 / 85%);
}
#__app-loading__.hidden {
pointer-events: none;
visibility: hidden;
opacity: 0;
transition: all 0.6s ease-out;
}
/** 下面是自定义 **/
/* From Uiverse.io by Admin12121 */
.content {
width: 300px;
height: 300px;
position: relative;
display: flex;
justify-content: center;
align-items: center;
}
.content .planet {
width: 65%;
height: 65%;
background-color: #546c8c;
border-radius: 100%;
position: absolute;
display: flex;
align-items: center;
transform-origin: center center;
box-shadow: inset 2px -10px 0px rgba(0, 0, 0, 0.1);
animation: planet 5s ease infinite alternate;
/* planet ring */
/* to cover the back of the ring */
/* planet spots */
}
@keyframes planet {
0% {
transform: rotate(10deg);
}
100% {
transform: rotate(-10deg);
}
}
.content .planet .ring {
position: absolute;
width: 300px;
height: 300px;
border-radius: 100%;
background-color: #bacbd9;
display: flex;
align-items: center;
justify-content: center;
transform-origin: 33% center;
box-shadow: 2px -10px 0px rgba(0, 0, 0, 0.1), inset -5px -10px 0px rgba(0, 0, 0, 0.1);
animation: ring 3s ease infinite;
/* small ball */
/* inner ring */
}
@keyframes ring {
0% {
transform: rotateX(110deg) rotateZ(0deg) translate(-50px, 5px);
}
100% {
transform: rotateX(110deg) rotateZ(360deg) translate(-50px, 5px);
}
}
.content .planet .ring:before {
content: "";
position: absolute;
width: 10px;
height: 30px;
border-radius: 100%;
background-color: #7ea1bf;
z-index: 2;
left: calc(0px - 5px);
box-shadow: inset -3px 3px 0px rgba(0, 0, 0, 0.2);
}
.content .planet .ring:after {
content: "";
position: absolute;
width: 240px;
height: 240px;
border-radius: 100%;
background-color: #7ea1bf;
box-shadow: inset 2px -10px 0px rgba(0, 0, 0, 0.1);
}
.content .planet .cover-ring {
position: absolute;
width: 100%;
height: 50%;
border-bottom-left-radius: 80%;
border-bottom-right-radius: 80%;
border-top-left-radius: 100px;
border-top-right-radius: 100px;
transform: translate(0px, -17px);
background-color: #546c8c;
z-index: 2;
box-shadow: inset 0px -2px 0px rgba(0, 0, 0, 0.1);
}
.content .planet .spots {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
z-index: 2;
}
.content .planet .spots span {
width: 30px;
height: 30px;
background-color: #3c4359;
position: absolute;
border-radius: 100%;
box-shadow: inset -2px 3px 0px rgba(0, 0, 0, 0.3);
animation: dots 5s ease infinite alternate;
}
@keyframes dots {
0% {
box-shadow: inset -3px 3px 0px rgba(0, 0, 0, 0.3);
}
100% {
box-shadow: inset 3px 3px 0px rgba(0, 0, 0, 0.3);
}
}
.content .planet .spots span:nth-child(1) {
top: 20px;
right: 50px;
}
.content .planet .spots span:nth-child(2) {
top: 40px;
left: 50px;
width: 15px;
height: 15px;
}
.content .planet .spots span:nth-child(3) {
top: 80px;
left: 20px;
width: 25px;
height: 25px;
}
.content .planet .spots span:nth-child(4) {
top: 80px;
left: 90px;
width: 40px;
height: 40px;
}
.content .planet .spots span:nth-child(5) {
top: 160px;
left: 70px;
width: 15px;
height: 15px;
}
.content .planet .spots span:nth-child(6) {
top: 165px;
left: 125px;
width: 10px;
height: 10px;
}
.content .planet .spots span:nth-child(7) {
top: 90px;
left: 150px;
width: 15px;
height: 15px;
}
.content p {
color: #bacbd9;
font-size: 14px;
z-index: 2;
position: absolute;
bottom: -20px;
font-family: "Roboto Mono", monospace;
animation: text 4s ease infinite;
width: 100px;
text-align: center;
}
@keyframes text {
0% {
transform: translateX(-30px);
letter-spacing: 0px;
color: #bacbd9;
}
25% {
letter-spacing: 3px;
color: #7ea1bf;
}
50% {
transform: translateX(30px);
letter-spacing: 0px;
color: #bacbd9;
}
75% {
letter-spacing: 3px;
color: #7ea1bf;
}
100% {
transform: translateX(-30px);
letter-spacing: 0px;
color: #bacbd9;
}
}
</style>
<div class="loading" id="__app-loading__">
<div class="content">
<div class="planet">
<div class="ring"></div>
<div class="cover-ring"></div>
<div class="spots">
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
</div>
</div>
<div class="title">
<%= VITE_APP_TITLE %>
</div>
</div>