javascript - 页面中的加载栏
问题描述
我想实现一个页面,其中在一个页面中,一半的数据会立即加载,但是对于一列,我有时必须等待获得响应并且一旦响应到来。我必须显示该列中的内容。一切都对我有用,我还添加了 loader.gif,因为用户不会认为他们没有得到任何响应。
我面临的问题是,它对整个页面使用加载 gif,而不是仅显示加载内容。我希望 loader.gif 应该显示在底部的某个地方,那里有取消按钮,直到一列得到响应,其余的字段应该立即出现。
我用过:
身体的一部分 -
<div class="se-pre-con"></div>
CSS -
.no-js #loader { display: none; }
.js #loader { display: block; position: absolute; left: 100px; top: 0; }
.se-pre-con {
position: fixed;
left: 0px;
top: 0px;
width: 100%;
height: 100%;
z-index: 9999;
background: url(resources/images/loading.gif) center no-repeat #fff;
}
javascript -
$(".se-pre-con").fadeOut("slow");
解决方案
看来你是新来的css
。我jQuery
为你制作函数;)
$(function(){
$('.box').click(function(){
$(this).loaderToggle();
});
});
// code u need
jQuery.fn.loaderOn = function(...args){
this.loaderInstall().find('.se-pre-con').fadeIn(...args);
return this;
}
jQuery.fn.loaderOff = function(...args){
this.find('.se-pre-con').fadeOut(...args);
return this;
}
jQuery.fn.loaderToggle = function(...args){
this.loaderInstall().find('.se-pre-con').fadeToggle(...args);
return this;
}
jQuery.fn.loaderInstall = function(){
if(!this.loaderInstalled()) {
this.append($('<div class="se-pre-con"></div>').hide());
}
return this;
}
jQuery.fn.loaderDestroy = function(){
this.removeClass('loader-container').find('.se-pre-con').remove();
return this;
}
jQuery.fn.loaderInstalled = function(){
this.addClass('loader-container');
return !!this.find('.se-pre-con').length;
}
/*
code you need
*/
.loader-container {
position: relative;
}
.se-pre-con {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: url(https://mir-s3-cdn-cf.behance.net/project_modules/disp/09b24e31234507.564a1d23c07b4.gif) center no-repeat #fff;
background-size: contain;
z-index: 9999;
}
/*
just for grid
*/
body {
margin: 40px;
}
.wrapper {
display: grid;
grid-gap: 10px;
grid-template-columns: 100px 100px 100px;
background-color: #fff;
color: #444;
}
.box {
background-color: #444;
color: #fff;
border-radius: 5px;
padding: 20px;
font-size: 150%;
}
.a {
grid-column: 1 / 3;
grid-row: 1;
}
.b {
grid-column: 3 ;
grid-row: 1 / 3;
}
.c {
grid-column: 1 ;
grid-row: 2 ;
}
.d {
grid-column: 2;
grid-row: 2;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="wrapper">
<div class="box a">A</div>
<div class="box b">B</div>
<div class="box c">C</div>
<div class="box d">D</div>
</div>
推荐阅读
- c# - 执行我的插入命令后数据库没有改变
- r - R:如何将(最后)列名作为值复制到新列?
- python - 错误:为 FastAPI docker 设置 Development live reload 时出现意外的额外参数 (/start-reload.sh)
- python - 带有 tkinter 的嵌套类工厂
- javascript - 如何更改此翻书?
- python - 如何识别与主表不匹配的条目和查找列以供快速参考
- c# - 为什么 web.config 在发布时创建而不是在 Asp.Net Core API 中构建项目?
- flutter - TextFormField 多行输入
- php - Laravel:使用无密码的用户拒绝访问
- sqitch - 将更改部署到 azure 时,sqitch deploy 命令失败