在项目开发中可能会出现首次进入项目时由于加载资源较多出现长时间白屏的问题,通常会选择编写首屏加载的样式提升客户体验感,如下:
打开public/index.html,示例代码如下,具体样式可根据需求调整
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
<title><%= htmlWebpackPlugin.options.title %></title>//网站名称
<style>
html,
body,
//添加样式
#app {
height: 100%;
margin: 0;
padding: 0;
}
#Loading {
top: 50%;
left: 50%;
position: absolute;
-webkit-transform: translateY(-50%) translateX(-50%);
transform: translateY(-50%) translateX(-50%);
z-index: 100;
}
@-webkit-keyframes ball-beat {
50% {
opacity: 0.2;
-webkit-transform: scale(0.75);
transform: scale(0.75);
}
100% {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1);
}
}
@keyframes ball-beat {
50% {
opacity: 0.2;
-webkit-transform: scale(0.75);
transform: scale(0.75);
}
100% {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1);
}
}
.ball-beat {
text-align: center;
}
.ball-beat > div {
background-color: #279fcf;
width: 15px;
height: 15px;
border-radius: 100% !important;
margin: 2px;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
display: inline-block;
-webkit-animation: ball-beat 0.7s 0s infinite linear;
animation: ball-beat 0.7s 0s infinite linear;
}
.ball-beat > div:nth-child(2n-1) {
-webkit-animation-delay: 0.35s !important;
animation-delay: 0.35s !important;
}
</style>
</head>
<body>
<noscript>
<strong>
很抱歉,如果没有 JavaScrip支持,系统将不能正常工作。请启用浏览器的 JavaScript然后继续。
</strong>
</noscript>
<div id="app">
//添加首屏加载内容
<div id="Loading">
<div class="loader-inner ball-beat">
<div></div>
<div></div>
<div></div>
<p>初次加载资源可能需要较多时间 请耐心等待</p>
</div>
</div>
</div>
<!-- built files will be auto injected -->
</body>
</html>