gpt4 book ai didi

javascript - 如何使用加载微调器作为 flutter web 应用程序的序言?

转载 作者:行者123 更新时间:2023-12-05 09:34:32 35 4
gpt4 key购买 nike

使用 Flutter 构建的 Web 应用程序包大小非常大,加载时间可能很长。在我的用例中,这并不是真正的问题,用户不会跳出。但我想避免他们盯着白色屏幕看 5 到 10 秒,而没有任何反馈。

在我的 Flutter Web 应用程序加载完成之前,如何显示基于 HTML/CSS 的加载微调器?

Web 应用嵌入到 web/index.html 中。我已经包含了一个小的 Javascript 片段,它在重新加载页面之前要求用户进行确认。这是正确执行的。
我在这里找到了一个不错的自容器 html 和 css 微调器:https://projects.lukehaas.me/css-loaders/

如果我将微调器添加到一个空的 html 模板中,它可以正常工作。但是如果我将它添加到 web/index.html 的正文中,它在屏幕上是不可见的。

当使用“检查元素”查看 DOM 时,我可以看到微调器已加载,但被 flutter canvaskit 渲染器覆盖。
在我看来,flutter 在页面加载时几乎立即为这个渲染器设置了 div,然后需要很长时间才能加载剩余的资源。

是否可以在 Flutter 完成所有准备工作之前显示加载微调器?

最佳答案

本教程对我来说效果很好:https://medium.com/flutter-community/adding-a-splash-screen-to-flutter-web-7930e5e44bd

只需创建您的 css 文件,这是我的 styles.cssweb/里面文件夹:

.loader, .loader:after {
border-radius: 50%;
width: 10em;
height: 10em;
}

.loader {
margin: 60px auto;
font-size: 10px;
position: relative;
text-indent: -9999em;
border-top: 1.1em solid rgba(0, 217, 255, 0.2);
border-right: 1.1em solid rgba(0, 217, 255, 0.2);
border-bottom: 1.1em solid rgba(0, 217, 255, 0.2);
border-left: 1.1em solid #00d9ff;
-webkit-transform: translateZ(0);
-ms-transform: translateZ(0);
transform: translateZ(0);
-webkit-animation: load8 1.1s infinite linear;
animation: load8 1.1s infinite linear;
}

@-webkit-keyframes load8 {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}

@keyframes load8 {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}

然后在 <head> 中导入你的 css你的web/index.html :

<head>
<!--
iOS meta tags & icons, etc...
-->

<link rel="stylesheet" type="text/css" href="styles.css">
</head>

最后在 <body> 中添加您的微调器(应该是正文的第一行):

<body>
<div class="loader">Loading...</div>

<!-- Register the service worker -->
</body>

截图

enter image description here

关于javascript - 如何使用加载微调器作为 flutter web 应用程序的序言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66534965/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com