forked from ant-design/ant-design-pro
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: 解决首次加载时白屏的问题 (ant-design#10347)
- Loading branch information
Showing
2 changed files
with
210 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,202 @@ | ||
/** | ||
* loading 占位 | ||
* 解决首次加载时白屏的问题 | ||
*/ | ||
(function () { | ||
const _root = document.querySelector('#root'); | ||
if (_root && _root.innerHTML === '') { | ||
_root.innerHTML = ` | ||
<style> | ||
html, | ||
body, | ||
#root { | ||
height: 100%; | ||
margin: 0; | ||
padding: 0; | ||
} | ||
#root { | ||
background-repeat: no-repeat; | ||
background-size: 100% auto; | ||
} | ||
.loading-title { | ||
font-size: 1.1rem; | ||
} | ||
.loading-sub-title { | ||
margin-top: 20px; | ||
font-size: 1rem; | ||
color: #888; | ||
} | ||
.page-loading-warp { | ||
display: flex; | ||
align-items: center; | ||
justify-content: center; | ||
padding: 26px; | ||
} | ||
.ant-spin { | ||
position: absolute; | ||
display: none; | ||
-webkit-box-sizing: border-box; | ||
box-sizing: border-box; | ||
margin: 0; | ||
padding: 0; | ||
color: rgba(0, 0, 0, 0.65); | ||
color: #1890ff; | ||
font-size: 14px; | ||
font-variant: tabular-nums; | ||
line-height: 1.5; | ||
text-align: center; | ||
list-style: none; | ||
opacity: 0; | ||
-webkit-transition: -webkit-transform 0.3s | ||
cubic-bezier(0.78, 0.14, 0.15, 0.86); | ||
transition: -webkit-transform 0.3s | ||
cubic-bezier(0.78, 0.14, 0.15, 0.86); | ||
transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86); | ||
transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), | ||
-webkit-transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86); | ||
-webkit-font-feature-settings: "tnum"; | ||
font-feature-settings: "tnum"; | ||
} | ||
.ant-spin-spinning { | ||
position: static; | ||
display: inline-block; | ||
opacity: 1; | ||
} | ||
.ant-spin-dot { | ||
position: relative; | ||
display: inline-block; | ||
width: 20px; | ||
height: 20px; | ||
font-size: 20px; | ||
} | ||
.ant-spin-dot-item { | ||
position: absolute; | ||
display: block; | ||
width: 9px; | ||
height: 9px; | ||
background-color: #1890ff; | ||
border-radius: 100%; | ||
-webkit-transform: scale(0.75); | ||
-ms-transform: scale(0.75); | ||
transform: scale(0.75); | ||
-webkit-transform-origin: 50% 50%; | ||
-ms-transform-origin: 50% 50%; | ||
transform-origin: 50% 50%; | ||
opacity: 0.3; | ||
-webkit-animation: antspinmove 1s infinite linear alternate; | ||
animation: antSpinMove 1s infinite linear alternate; | ||
} | ||
.ant-spin-dot-item:nth-child(1) { | ||
top: 0; | ||
left: 0; | ||
} | ||
.ant-spin-dot-item:nth-child(2) { | ||
top: 0; | ||
right: 0; | ||
-webkit-animation-delay: 0.4s; | ||
animation-delay: 0.4s; | ||
} | ||
.ant-spin-dot-item:nth-child(3) { | ||
right: 0; | ||
bottom: 0; | ||
-webkit-animation-delay: 0.8s; | ||
animation-delay: 0.8s; | ||
} | ||
.ant-spin-dot-item:nth-child(4) { | ||
bottom: 0; | ||
left: 0; | ||
-webkit-animation-delay: 1.2s; | ||
animation-delay: 1.2s; | ||
} | ||
.ant-spin-dot-spin { | ||
-webkit-transform: rotate(45deg); | ||
-ms-transform: rotate(45deg); | ||
transform: rotate(45deg); | ||
-webkit-animation: antrotate 1.2s infinite linear; | ||
animation: antRotate 1.2s infinite linear; | ||
} | ||
.ant-spin-lg .ant-spin-dot { | ||
width: 32px; | ||
height: 32px; | ||
font-size: 32px; | ||
} | ||
.ant-spin-lg .ant-spin-dot i { | ||
width: 14px; | ||
height: 14px; | ||
} | ||
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { | ||
.ant-spin-blur { | ||
background: #fff; | ||
opacity: 0.5; | ||
} | ||
} | ||
@-webkit-keyframes antSpinMove { | ||
to { | ||
opacity: 1; | ||
} | ||
} | ||
@keyframes antSpinMove { | ||
to { | ||
opacity: 1; | ||
} | ||
} | ||
@-webkit-keyframes antRotate { | ||
to { | ||
-webkit-transform: rotate(405deg); | ||
transform: rotate(405deg); | ||
} | ||
} | ||
@keyframes antRotate { | ||
to { | ||
-webkit-transform: rotate(405deg); | ||
transform: rotate(405deg); | ||
} | ||
} | ||
</style> | ||
<div style=" | ||
display: flex; | ||
flex-direction: column; | ||
align-items: center; | ||
justify-content: center; | ||
height: 100%; | ||
min-height: 362px; | ||
"> | ||
<div class="page-loading-warp"> | ||
<div class="ant-spin ant-spin-lg ant-spin-spinning"> | ||
<span class="ant-spin-dot ant-spin-dot-spin"> | ||
<i class="ant-spin-dot-item"></i> | ||
<i class="ant-spin-dot-item"></i> | ||
<i class="ant-spin-dot-item"></i> | ||
<i class="ant-spin-dot-item"></i> | ||
</span> | ||
</div> | ||
</div> | ||
<div class="loading-title"> | ||
正在加载资源 | ||
</div> | ||
<div class="loading-sub-title"> | ||
初次加载资源可能需要较多时间 请耐心等待 | ||
</div> | ||
</div> | ||
`; | ||
} | ||
})(); |