我不知道这是否可行,我已经尝试过寻找解决方案,但是根本没有运气。
我正在尝试使用动画gif(loader-bar.gif)的整页加载屏幕,而背景稍微透明(或模糊)。我想这可以用jQuery,但我真的不明白如何实现这个?
我自己已经尝试了几件事,但总会导致相同或类似的问题;或者动画gif在页面加载时没有显示动画和/或加载页面没有覆盖整个区域,特别是当显示额外的内容时(即使是高度:100%;唯一的'修复'对此是通过使用高度:300%;但这当然没有解决方案。)
所以我决定重做全屏/窗口加载器页面,可能jQuery可以正确完成这项工作,对吗?
答案 0 :(得分:5)
我可能会这样解决:try demo
优点是,叠加层的内容居中,您不会遇到背景图片。因此,您可以将任何内容放入叠加层中,例如文本“待命”加上动画gif。
body, html {
margin: 0;
padding: 0;
}
div.overlay {
display: table;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
div.overlay > div {
display: table-cell;
width: 100%;
height: 100%;
background: #ccc;
text-align: center;
vertical-align: middle;
}
<div class="overlay"><div>CENTERED ICON</div></div>
// on load finished
$(window).load(function() {
// select element and fade it out
$('.overlay').fadeOut();
});
注意您应该使用$(window).load()
,因为当所有内容都已完成加载时会触发此类图像。
答案 1 :(得分:3)
尝试定义一个元素 - 或通过js附加它 - 作为正文中的第一个节点,例如
<div id="load">Please wait</div>
这种风格
html, body, #load { height: 100%; width: 100%; }
#load {
position : fixed;
z-index : 1; /* or higher if necessary */
top : 0;
left : 0;
overflow : hidden;
text-indent : 100%;
font-size : 0;
background : url(some-animated-loader.gif) center no-repeat;
}
然后在发生load
或DomReady
事件时删除(或隐藏)该div
答案 2 :(得分:2)
尝试这样的事情 - &gt; http://jsfiddle.net/3wU6C/5