javascript - 如何修改此 HTML JS 页面加载脚本以淡出白色背景和图标
问题描述
我已经实现了这个加载图标,它运行良好并且出现在页面的中心,这很好。我添加了一个额外的脚本来淡出图标而不是突然改变它,这很好用,但白色背景的变化仍然非常突然。
我想知道如何更改以下脚本以允许白色背景淡出页面内容以及图标。
<style>
#loader {
width: 70px;
height: 70px;
}
.center {
background: #fff;
position:fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
</style>
<div id="loader" class="center"> <i class="fa fa-spinner fa-5x fa-spin" style="color:#118F5E"></i></div>
<script>
document.onreadystatechange = function() {
if (document.readyState !== "complete") {
document.querySelector(
"body").style.visibility = "hidden";
$('#loader').animate({opacity: 0}, 1000);
document.querySelector(
"#loader").style.visibility = "visible";
} else {
document.querySelector(
"#loader").style.display = "none";
document.querySelector(
"body").style.visibility = "visible";
}
};
</script>
解决方案
您可以扩展您所拥有的内容并将加载程序放在覆盖容器中。
html
<div id="page-overlay" class="center">
<div id="loader" class="center"> <i class="fa fa-spinner fa-5x fa-spin" style="color:#118F5E"></i></div>
</div>
css
#loader {
width: 70px;
height: 70px;
}
.center {
background: #fff;
position:fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
js
document.onreadystatechange = function() {
if (document.readyState !== "complete") {
document.querySelector(
"body").style.visibility = "hidden";
$('#page-overlay').animate({opacity: 0}, 1000);
document.querySelector(
"#loader").style.visibility = "visible";
} else {
document.querySelector(
"#loader").style.display = "none";
document.querySelector(
"body").style.visibility = "visible";
}
};
所以基本上 1) 在 HTML 中插入#loader
2 #page-overlay
) 将动画应用到$('#page-overlay')
JS 中。这是一个小提琴概念:https ://jsfiddle.net/kyb4mezh/
这将使页面有效地过渡。您甚至可以更进一步并为加载器容器添加固定的不透明度。
推荐阅读
- rx-java2 - 使用 RxJava2 时,我用什么代替 Func1?
- java - 如何从某个地方开始获取数组的最小值?
- javascript - 查询具有多个参数的数组
- python - 在 python h2o 模块中,如何在使用 h2o.import_sql_select() 导入数据时指定 na_strings?
- swift - 为什么我的 NSWindow 有一个工具栏?我怎样才能让它消失?
- sql - 如何根据外部函数的结果更新表中的列?
- sql-server - SQL Server:查找 ReportServer 目录报告参数和参数的数据集
- dll - KeyDown 程序抛出 2 个编译错误
- java - 从firebase存储中一张一张下载多张图片
- amazon-web-services - 将 SSM 会话管理器的会话输出保存到另一个 AWS 账户中的 S3 存储桶