我使用波纹管代码显示进度条。
jQuery('#container').showLoading(
{
'afterShow':
function ()
{
setTimeout("jQuery('#container').hideLoading()", 1000);
}
});
进度条在屏幕上显示,直到1000
毫秒,然后消失。
但我希望屏幕上显示进度条直到(time) = page load
。
静态意味着我需要1000毫秒,但我希望进度条显示很长时间......页面需要时间来加载。
那么如何获取页面加载时间并将其传递到这里?
答案 0 :(得分:2)
我们需要做的是首先显示进度指示器,然后在页面完全加载时隐藏它。我们可以通过在DOM准备就绪时将load事件绑定到window对象来实现这一点。
请注意:在这么小的页面上,您可能不会注意到加载程序,因为它会发生得太快。
jQuery(document).ready(function() {
showHideLoading(); // load this func as soon as the doc is ready
});
function showHideLoading() {
// We'll be referencing #loader more than once so let's cache it
var loader = jQuery("#loader");
// now we'll show the #loader
loader.show();
// We'll set up a new event so that when everything on the page
// has finished loading, we hide our #loader
jQuery(window).on("load", function() {
loader.fadeOut(500);
});
}
body {
margin: 0;
}
img {
max-width: 100%;
/*this is only here to make the page load a little more slowly */
}
#loader {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
}
#loader div {
width: 150px;
height: 80px;
margin: -40px 0 0 -75px;
background: #fff;
position: absolute;
top: 50%;
left: 50%;
text-align: center;
border-radius: 50%;
line-height: 80px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- this is only here to make the page load a little more slowly -->
<img src="http://lorempixel.com/image_output/cats-q-c-1920-1080-8.jpg" />
<div id="loader">
<div>Loading</div>
</div>
答案 1 :(得分:0)
您不会获得页面加载时间,但是您可以绑定到window.onload
事件以隐藏进度条。只有在页面完全加载时才会触发window.onload
事件。
window.onload = function() {
jQuery('#container').hideLoading();
};