使用jQuery加载页面全屏和高度(或窗口)?

时间:2012-08-01 10:49:46

标签: javascript jquery html css

我不知道这是否可行,我已经尝试过寻找解决方案,但是根本没有运气。

我正在尝试使用动画gif(loader-bar.gif)的整页加载屏幕,而背景稍微透明(或模糊)。我想这可以用jQuery,但我真的不明白如何实现这个?

我自己已经尝试了几件事,但总会导致相同或类似的问题;或者动画gif在页面加载时没有显示动画和/或加载页面没有覆盖整个区域,特别是当显示额外的内容时(即使是高度:100%;唯一的'修复'对此是通过使用高度:300%;但这当然没有解决方案。)

所以我决定重做全屏/窗口加载器页面,可能jQuery可以正确完成这项工作,对吗?

3 个答案:

答案 0 :(得分:5)

我可能会这样解决:try demo

优点是,叠加层的内容居中,您不会遇到背景图片。因此,您可以将任何内容放入叠加层中,例如文本“待命”加上动画gif。

CSS

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;
}

HTML

<div class="overlay"><div>CENTERED ICON</div></div>

的JavaScript

// 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;
}

然后在发生loadDomReady事件时删除(或隐藏)该div

答案 2 :(得分:2)

尝试这样的事情 - &gt; http://jsfiddle.net/3wU6C/5