html - 自定义 Wordpress 加载屏幕滞后
问题描述
我在 wordpress 网站中实现了加载动画,当 (document.readyState) 返回“完成”时我将其删除。在好的计算机中它工作正常,但在较慢的计算机中,动画看起来非常滞后。有什么办法可以针对速度较慢的计算机进行优化。
html部分:
<div id="vignette"></div>
<div id="container">
<div id="pos">
<div class="cube">
<div class="left"></div>
<div class="center"></div>
<div class="right"></div>
<div class="bottom"></div>
<div class="shadow"></div>
</div>
<div class="cube">
<div class="left"></div>
<div class="center"></div>
<div class="right"></div>
<div class="bottom"></div>
<div class="shadow"></div>
</div>
<div class="cube">
<div class="left"></div>
<div class="center"></div>
<div class="right"></div>
<div class="bottom"></div>
<div class="shadow"></div>
</div>
<div class="cube">
<div class="left"></div>
<div class="center"></div>
<div class="right"></div>
<div class="bottom"></div>
<div class="shadow"></div>
</div>
<div class="cube">
<div class="left"></div>
<div class="center"></div>
<div class="right"></div>
<div class="bottom"></div>
<div class="shadow"></div>
</div>
<div class="cube">
<div class="left"></div>
<div class="center"></div>
<div class="right"></div>
<div class="bottom"></div>
<div class="shadow"></div>
</div>
<div class="cube">
<div class="left"></div>
<div class="center"></div>
<div class="right"></div>
<div class="bottom"></div>
<div class="shadow"></div>
</div>
<div class="cube">
<div class="left"></div>
<div class="center"></div>
<div class="right"></div>
<div class="bottom"></div>
<div class="shadow"></div>
</div>
</div>
</div>
和CSS:
<style>
@import "compass/css3";
.cube:nth-child(1), .cube:nth-child(1) div {
z-index: 1;
animation-delay: 0.0833333333s;
}
.cube:nth-child(2), .cube:nth-child(2) div {
z-index: 2;
animation-delay: 0.1666666667s;
}
.cube:nth-child(3), .cube:nth-child(3) div {
z-index: 3;
animation-delay: 0.25s;
}
.cube:nth-child(4), .cube:nth-child(4) div {
z-index: 4;
animation-delay: 0.3333333333s;
}
.cube:nth-child(5), .cube:nth-child(5) div {
z-index: 5;
animation-delay: 0.4166666667s;
}
.cube:nth-child(6), .cube:nth-child(6) div {
z-index: 6;
animation-delay: 0.5s;
}
.cube:nth-child(7), .cube:nth-child(7) div {
z-index: 7;
animation-delay: 0.5833333333s;
}
.cube:nth-child(8), .cube:nth-child(8) div {
z-index: 8;
animation-delay: 0.6666666667s;
}
html {
height: 100%;
}
body {
background-color: #2a2a2a;
position: relative;
width: 100%;
height: 100%;
padding: 0;
margin: 0;
display: table;
position:absolute;
overflow-y:hidden;
}
#pos {
width: 304px;
margin: 0 auto;
}
#container {
transition: 0.8s;
width: 100%;
perspective: 2200px;
padding: 20px 60px;
position: relative;
display: table-cell;
vertical-align: middle;
position: absolute;
height: 100vh;
padding-top: 42vh;
z-index: 1000000000000;
background-color: #2a2a2a;
}
.cube {
background-color: #EB9346 !important;
width: 30px;
height: 150px;
position: relative;
margin-right: 8px;
float: left;
transform-style: preserve-3d;
box-shadow: 0 0 0px rgba(0, 0, 0, .0);
animation: animCube;
/* Safari and Chrome */
animation-iteration-count: infinite;
}
.cube div {
position: absolute;
display: block;
width: 30px;
height: 150px;
}
.cube .center {
width: 30px;
box-shadow: 0 0 3x rgba(0, 0, 0, .3), inset 0 1px rgba(255, 255, 255, .05);
animation: animCenter;
animation-iteration-count: infinite;
}
.cube .bottom {
width: 30px;
height: 10px;
bottom: 0;
transform: rotateX(90deg);
transform-origin: center bottom;
animation: animBottom;
animation-iteration-count: infinite;
}
.cube .left {
left: 0;
transform: rotateY(90deg);
transform-origin: left center;
animation: animSide;
animation-iteration-count: infinite;
}
.cube .right {
right: 0;
transform: rotateY(-90deg);
transform-origin: right center;
animation: animSide;
animation-iteration-count: infinite;
}
.cube .left, .cube .center, .cube .right, .cube .bottom, .cube {
animation-duration: 1s;
animation-timing-function: ease-in-out;
}
.left, .right {
background-color: #2a2a2a;
background-image: top, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0);
}
.center {
background-color: #2a2a2a;
background-image: linear-gradient(top, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
}
.bottom {
background-color: #2a2a2a;
background-image: linear-gradient(bottom, rgba(255, 255, 255, 00), rgba(255, 255, 255, 0));
}
@keyframes animCube {
30% {
transform: translateZ(150px) translatex(0) translateY(0) rotatex(3deg) rotatey(0deg) rotateZ(0deg);
box-shadow: 0 0 20px rgba(0, 0, 0, .5), 0 12px 20px 1px rgba(0, 0, 0, .5);
}
100% {
transform: translateZ(0px) rotatez(0deg);
box-shadow: 0 0 30px rgba(0, 2, 0, .0), 0 0 0 0 rgba(0, 0, 0, 0);
}
}
@keyframes animSide {
30% {
width: 100px;
background-color: #c97f3e;
}
95% {
width: 10px;
}
}
@keyframes animBottom {
30% {
height: 100px;
}
95% {
height: 10px;
}
}
@keyframes animCenter
/* Safari and Chrome */
{
20% {
background-color: #eb9346;
box-shadow: 0 0 3px rgba(255, 255, 255, 0.15), inset 0 1px rgba(255, 255, 255, .5);
}
65% {
box-shadow: 0 0 3px rgba(255, 255, 255, 0), inset 0 1px rgba(255, 255, 255, .25);
}
}
</style>
而且这只发生在网站上,而不是如果我在本地运行这个动画
解决方案
推荐阅读
- laravel - 如何限制 Laravel 8 上的更新功能?
- python - 我试图将抓手添加到现有的 moveit 包中
- java - 如何单击按钮并使用硒选择值?
- powerbi - 尝试访问在 Azure SQL Server 上运行 SQL 查询的已发布 Power BI 报告时出现缺少凭据错误
- flutter - 如何让 openEndDrawer() 响应我的自定义 AppBar 按钮而不是想象的 AppBar 按钮?
- heroku - apt-get update 在 Heroku 中返回 Acquire (30: Read only file system) 错误
- sql - 从查询中删除 / 反斜杠以在 oracle 中获取有效数据
- typescript - 未处理的承诺拒绝:NotAllowedError:用户代理不允许该请求
- c# - Newtonsoft.Json 转换器抛出异常说“无法加载文件或程序集'System.Security.Permissions'”
- python - 欧拉计划问题 52:寻找置换倍数